Jsf1.2 + Tomahawk 1.1.3

2 respostas
marcelohonsa

Olá pessoal.

Estou utilizando o Jsf 1.2 com alguns componentes do tomahawk, como por exemplo o dataTable.

Importei o jar do tomahawk para WEB-INF/lib, e declarei o mesmo nas libaries no arquivo.
Acontece que as tags/componentes do tomahawk não estão funcionando, nem se quer são apresentados no jsp quando rodo a aplicação…

Utilizei com o Jsf 1.1 funcionou perfeitamente…

Existem alguma incompatibilidade entre o JSF 1.2 e o Tomahawk??

Alguém tem idéia do que pode ser?

Segue o código de um dos arquivos…

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:t="http://myfaces.apache.org/tomahawk">

	<ui:composition template="/template/template.jsp">
			<ui:define name="menu_adicional">
	            	<table width="100%" align="center" valign="center" class="menu">
	            	<tbody>
              		<tr>
              			<td width="25%" align="center">
              			</td>
              			<td width="25%" align="center">
              			</td>
              			<td width="25%" align="center">
              			</td>
              			<td width="25%" align="center">
							<a href="gerenciarUsuario.jsf" class="submenu"><img src="../img/navegacao_direita.gif" border="0"></img>Voltar</a>              			
              			</td>              			              			              			
              		</tr>
              		</tbody>
              	</table>	
			</ui:define>
			<ui:define name="body">

              	
				<f:view>	
			   		<t:saveState value="#{negocioUsuario.listaUsuarios}" />							
				<h:form>
					<table width="450" align="center">
					<tbody>
						<tr>
							<td width="450" align="left">
							<b><h:outputText styleClass="textoprincipal" value="..::     Localizar usuário     ::.." /></b>
							</td>
						</tr>
						</tbody>
					</table>	
					<br/>				
              	<table width="100%" align="center">
              	<tbody>
              	<tr>
              		<td width="20%" align="left">
              			<h:outputText value="Nome : " styleClass="textoprincipal" />
              		</td>
              		<td width="80%" align="left">
              			<h:inputText id="busca" styleClass="campobusca" value="#{negocioUsuario.chaveConsulta}" size="50">
						</h:inputText>
              		</td>              		
              	</tr>
              	</tbody>
              	</table>
              	<table width="100%" align="center">
              	<tbody>
              	<tr>
              		<td width="20%" align="left">
						<h:commandLink action="#{negocioUsuario.getUsuarios}" >
							<img src="../img/buscar.gif" border="0"></img>						
							<f:param name="id" value="id"/>
						</h:commandLink>
              		</td>
              		<td width="80%" align="left">
              		</td>              		
              	</tr>
              	<tr>
              		<td width="20%" align="left">
						<br/>	
              		</td>
              		<td width="80%" align="left">
              		</td>              		
              	</tr>  
              	</tbody>            	
              	</table>

			<t:dataTable styleClass="comBordaSimples" width="522" value="#{negocioUsuario.listaUsuarios}" var="user">
				<h:column>
					<f:facet name="header">
						<h:outputText value="Nome" styleClass="textoprincipal"/>
					</f:facet>
					<h:outputText styleClass="textoprincipal" value="#{user.nome}"/>					
				</h:column>
				<h:column>
					<f:facet name="header">
						<h:outputText value="Login" styleClass="textoprincipal"/>
					</f:facet>
					<h:outputText styleClass="textoprincipal" value="#{user.login}"/>					
				</h:column>
				<h:column>				
					<f:facet name="header">
						<h:outputText value="Visualizar" styleClass="textoprincipal"/>
					</f:facet>
					<h:commandLink styleClass="textoprincipal" value="Visualizar" action="#{negocioUsuario.visualizaUsuario}" immediate="true">
						 <f:param name="id" value="#{user.id}" />					
					</h:commandLink>
				</h:column>
				<h:column>				
					<f:facet name="header">
						<h:outputText value="Editar" styleClass="textoprincipal"/>
					</f:facet>
					<h:commandLink styleClass="textoprincipal" value="Editar" action="#{negocioUsuario.editUsuario}" immediate="true">
						 <f:param name="id" value="#{user.id}" />					
					</h:commandLink>
				</h:column>																				
				<h:column>				
					<f:facet name="header">
						<h:outputText value="Excluir" styleClass="textoprincipal"/>
					</f:facet>
					<h:commandLink styleClass="textoprincipal" value="Excluir" action="#{negocioUsuario.getDelUsuario}" immediate="true">
						 <f:param name="id" value="#{user.id}" />					
					</h:commandLink>
				</h:column>																												
			</t:dataTable>	
  	
              	</h:form>              	
              	</f:view>
              				
			</ui:define>
	</ui:composition>
</html>

Desde já, agradeço!

2 Respostas

marcelohonsa

Pessoal, consegui solucionar o problema, e vou registrar aqui pois caso alguem tenha a mesma dificuldade que eu tive, ja vai ter um caminho para seguir e solucionar também…

Para utilizar o JSF 1.2 com Facelets e o MyFaces Tomahawk, você tem que mapear seus componentes do tomahawk em um arquivo xml, e referenciá-lo no xml da sua aplicação.

Eu fiz da seguinte forma :

Criei um arquivo com o seguinte nome : tomahawk.taglib.xml, com o seguinte conteúdo :

<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
<facelet-taglib>
    <!-- author: [email removido] -->
    <namespace>http://myfaces.apache.org/tomahawk</namespace>
    <tag>
        <tag-name>commandButton</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCommandButton</component-type>
            <renderer-type>org.apache.myfaces.Button</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>commandLink</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCommandLink</component-type>
            <renderer-type>org.apache.myfaces.Link</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>dataTable</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlDataTable</component-type>
            <renderer-type>org.apache.myfaces.Table</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputHidden</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputHidden</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputSecret</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputSecret</component-type>
            <renderer-type>org.apache.myfaces.Secret</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputText</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputText</component-type>
            <renderer-type>org.apache.myfaces.Text</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputHelpText</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputTextHelp</component-type>
            <renderer-type>org.apache.myfaces.TextHelp</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputTextarea</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputTextarea</component-type>
            <renderer-type>org.apache.myfaces.Textarea</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>graphicImage</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlGraphicImage</component-type>
            <renderer-type>org.apache.myfaces.Image</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>message</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlMessage</component-type>
            <renderer-type>org.apache.myfaces.Message</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>messages</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlMessages</component-type>
            <renderer-type>org.apache.myfaces.Messages</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>outputLabel</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlOutputLabel</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>outputText</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlOutputText</component-type>
            <renderer-type>org.apache.myfaces.Text</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelGrid</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelGrid</component-type>
            <renderer-type>org.apache.myfaces.Grid</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelGroup</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelGroup</component-type>
            <renderer-type>org.apache.myfaces.Group</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectOneMenu</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectOneMenu</component-type>
            <renderer-type>org.apache.myfaces.Menu</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectManyMenu</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectManyMenu</component-type>
            <renderer-type>org.apache.myfaces.Menu</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectOneRadio</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectOneRadio</component-type>
            <renderer-type>org.apache.myfaces.Radio</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectBooleanCheckbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectBooleanCheckbox</component-type>
            <renderer-type>org.apache.myfaces.Checkbox</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectManyCheckbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectManyCheckbox</component-type>
            <renderer-type>org.apache.myfaces.Checkbox</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectOneListbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectOneListbox</component-type>
            <renderer-type>org.apache.myfaces.Listbox</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectManyListbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSelectManyListbox</component-type>
            <renderer-type>org.apache.myfaces.Listbox</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputCalendar</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputCalendar</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>jsValueChangeListener</tag-name>
        <component>
            <component-type>org.apache.myfaces.JsValueChangeListener</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>jsValueSet</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlJsValueSet</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>checkbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCheckbox</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>commandNavigation</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCommandNavigation</component-type>
            <renderer-type>org.apache.myfaces.Navigation</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>commandSortHeader</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCommandSortHeader</component-type>
            <renderer-type>org.apache.myfaces.SortHeader</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>dataList</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlDataList</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>dataScroller</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlDataScroller</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputDate</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputDate</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputFileUpload</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlInputFileUpload</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>inputHtml</tag-name>
        <component>
            <component-type>org.apache.myfaces.InputHtml</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>navigationMenuItem</tag-name>
        <component>
            <component-type>org.apache.myfaces.NavigationMenuItem</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>navigationMenuItems</tag-name>
        <component>
            <component-type>javax.faces.SelectItems</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>jscookMenu</tag-name>
        <component>
            <component-type>org.apache.myfaces.JSCookMenu</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelLayout</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelLayout</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelNavigation</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelNavigation</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelTab</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelTab</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelTabbedPane</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelTabbedPane</component-type>
        </component>
    </tag>
    <!-- deactivated since there's no component! tag>
    <tag-name>tabChangeListener</tag-name>
    <component>
    <component-type></component-type>
    </component>
    </tag-->
    <tag>
        <tag-name>collapsiblePanel</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlCollapsiblePanel</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectOneCountry</tag-name>
        <component>
            <component-type>org.apache.myfaces.SelectOneCountry</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>selectOneLanguage</tag-name>
        <component>
            <component-type>org.apache.myfaces.SelectOneLanguage</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>stylesheet</tag-name>
        <component>
            <component-type>org.apache.myfaces.Stylesheet</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>div</tag-name>
        <component>
            <component-type>org.apache.myfaces.Div</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>htmlTag</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlTag</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>radio</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlRadio</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>tree</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlTree</component-type>
            <renderer-type>org.apache.myfaces.HtmlTree</renderer-type>
        </component>
    </tag>
    <!-- deactivated since there's no component! tag>
    <tag-name>treeSelectionListener</tag-name>
    <component>
    <component-type></component-type>
    </component>
    </tag-->
    <!-- deactivated since there's no component! tag>
    <tag-name>iconProvider</tag-name>
    <component>
    <component-type></component-type>
    </component>
    </tag-->
    <tag>
        <tag-name>treeColumn</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlTreeColumn</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>treeCheckbox</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlTreeCheckbox</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>tree2</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlTree2</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>panelStack</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPanelStack</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>popup</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlPopup</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>newspaperTable</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlNewspaperTable</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>aliasBean</tag-name>
        <component>
            <component-type>org.apache.myfaces.AliasBean</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>aliasBeansScope</tag-name>
        <component>
            <component-type>org.apache.myfaces.AliasBeansScope</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>buffer</tag-name>
        <component>
            <component-type>org.apache.myfaces.Buffer</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>saveState</tag-name>
        <component>
            <component-type>org.apache.myfaces.SaveState</component-type>
        </component>
    </tag>
    <!-- deactivated since there's no component! tag>
    <tag-name>updateActionListener</tag-name>
    <component>
    <component-type></component-type>
    </component>
    </tag-->
    <tag>
        <tag-name>validateCreditCard</tag-name>
        <validator>
            <validator-id>org.apache.myfaces.validator.CreditCard</validator-id>
        </validator>
    </tag>
    <tag>
        <tag-name>validateEmail</tag-name>
        <validator>
            <validator-id>org.apache.myfaces.validator.Email</validator-id>
        </validator>
    </tag>
    <tag>
        <tag-name>validateEqual</tag-name>
        <validator>
            <validator-id>org.apache.myfaces.validator.Equal</validator-id>
        </validator>
    </tag>
    <tag>
        <tag-name>swapImage</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlSwapImage</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>columns</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlColumns</component-type>
        </component>
    </tag>
    <tag>
        <tag-name>column</tag-name>
        <component>
            <component-type>org.apache.myfaces.HtmlColumn</component-type>
        </component>
    </tag>
    <!-- additional validators (note: not in tld, so no code completion) -->
    <tag>
        <tag-name>validateRegExpr</tag-name>
        <validator>
            <validator-id>org.apache.myfaces.validator.RegExpr</validator-id>
        </validator>
    </tag>
</facelet-taglib>

Depois disso, referenciei ele no xml da minha aplicação da seguinte forma :

<context-param>
  <param-name>facelets.LIBRARIES</param-name>
  <param-value>/WEB-INF/tomahawk.taglib.xml</param-value>
 </context-param>

e, finalmente, para utilizar nos meus arquivos, declarei a utilização da seguinte forma nos meus arquivos jsp :

xmlns:t=“http://myfaces.apache.org/tomahawk

É isso ai, se servir pra ajudar mais alguem ja está valendo!

A

Rapaz, sua dica foi de grande valia!!! Me ajudou muito!!!
Muito obrigado!!!

Criado 8 de março de 2007
Ultima resposta 23 de nov. de 2007
Respostas 2
Participantes 2