Template com Facelets

6 respostas
EHS

Bom galera, estou começando a estudar facelets e naum to conseguindo fazer funcionar um tutorial que estava seguindo. O erro diz que: O documento XML naum esta associado a estilos.

abaixo segue os meus códigos:

template.xhtml
<!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">
  <body>
    <table>
      <tr>
        <td colspan="2">
          <ui:insert name="topo">
            <ui:include src="topo.xhtml"/>
          </ui:insert>
        </td>
      </tr>

      <tr>
        <td>
          <ui:insert name="menu">
            <ui:include src="menu.xhtml"/>
          </ui:insert>
        </td>
        <td>
          <ui:insert name="principal" />
        </td>
      </tr>

      <tr>
        <td colspan="2">
          <ui:insert name="rodape">
            <ui:include src="rodape.xhtml"/>
          </ui:insert>
        </td>
      </tr>
    </table>
  </body>
</html>
menu.xhtml
<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">

  <ui:fragment>
      <h:form>
        <ul>
          <li>
            <h:commandLink action="fornecedores">
              Fornecedores
            </h:commandLink>
          </li>
          <li>
            Clientes
          </li>
        </ul>
      </h:form>
    </ui:fragment>
</html>
form.xhtml
<html
    template="./template.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">

  <ui:composition>
      <ui:define name="principal">
        <h:form>
          <h:inputHidden value="#{fornecedorMB.fornecedor.id}" id="idFornecedor" />
          <h:panelGrid columns="2">
            <h:outputLabel value="Nome" for="iNome" />
            <h:inputText value="#{fornecedorMB.fornecedor.nome}" id="iNome" />

            <h:outputLabel value="Cnpj" for="iCnpj" />
            <h:inputText value="#{fornecedorMB.fornecedor.cnpj}" id="iCnpj" />
          </h:panelGrid>

          <h:messages showDetail="true" showSummary="true" />

          <h:commandButton action="#{fornecedorMB.doSalvar}" value="Salvar" />
          <h:commandButton action="#{fornecedorMB.doExcluir}" value="Excluir" />
        </h:form>
      </ui:define>
    </ui:composition>
</html>

6 Respostas

maurijava

no composition vc tem que colocar:

<ui:composition template=“caminho mais nome do template”>

e o template tem que ser definido com div, mas não sei se isso é regra mesmo.

EHS

coloquei assim

<ui:composition template="./template.xhtml">

e assim também

<ui:composition template="template.xhtml">

e continua o mesmo erro.

jpjcjbr

Boa noite…

Acredito que exista algum erro na estrutura do xhtml das suas páginas, faça um teste da seguinte forma: retire tudo da sua página e verifique se ela é exibida, em seguida vá adicionando o conteúdo, até que vc descubra qual a parte que está zicada

espero ter ajudado

flws

jpjcjbr

Boa noite…

Acredito que exista algum erro na estrutura do xhtml das suas páginas, faça um teste da seguinte forma: retire tudo da sua página e verifique se ela é exibida, em seguida vá adicionando o conteúdo, até que vc descubra qual a parte que está zicada

espero ter ajudado

flws

maurijava

Você fez os mapeamentos no web.xml? tá feito certinho? Pode ser isso.

Outra coisa, tem que configurar o faces-config.xml, sem isso não funciona.

Sds

EHS
o meu web.xml está assim
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>

    <context-param>
        <param-name>javax.faces.default_suffix</param-name>
        <param-value>.xhtml</param-value>
    </context-param>
</web-app>
faces-config.xml
<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE ================================== -->

<faces-config version="1.2" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
    <application>
        <view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
    </application>
</faces-config>

Também tentei tirar tudo e ir testando e nada funcionou, se eu digitar a url do menu.xhtml aparece fornecedores e clientes, daí se eu tentar com o template.xhtml naum aparece nada.

Criado 31 de janeiro de 2011
Ultima resposta 1 de fev. de 2011
Respostas 6
Participantes 3