6
respostas

Problema para renderizar jsf no html

Tudo o que está dentro do formulário não está aparecendo no navegador, sabem o que pode estar acontecendo?

<!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://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core">

<ui:composition template="">
    <ui:define name="header">
        Add your header here or delete to use the default
    </ui:define>
    <ui:define name="content">
        Add your content here or delete to use the default
    </ui:define>
    <ui:define name="footer">
        Add your footer here or delete to use the default
    </ui:define>

</ui:composition>

<h:form>
    <div>
        <h:outputLabel value="titulo" />
        <h:inputText value="#{adminLivrosBean.livro.titulo}"/>
    </div>
    <div>
        <h:outputLabel value="descricao" />
        <h:inputTextarea rows="4" cols="8" value="#{adminLivrosBean.livro.descricao}" />
    </div>
        <h:outputLabel value="Números de Páginas" />
        <h:inputText value="#{adminLivrosBean.livro.numeroPaginas}"/>
    <div>
        <h:outputLabel value="Preço" />
        <h:inputText value="#{adminLivrosBean.livro.preco}"/>
    </div>
    <h:commandButton value="Cadastrar" />
</h:form>

</html>
6 respostas

Fala Marcos eu vi algumas coisas estranhas no seu html ai ein.

<ui:composition template="">
    <ui:define name="header">
        Add your header here or delete to use the default
    </ui:define>
    <ui:define name="content">
        Add your content here or delete to use the default
    </ui:define>
    <ui:define name="footer">
        Add your footer here or delete to use the default
    </ui:define>

</ui:composition>

Você está usando template? porque no seu ui:composition você não está passando nada no seu template está vazio. e essa tag ui composition não seria no seu formulario completo? ficando assim?

<!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://xmlns.jcp.org/jsf/facelets"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core">

<ui:composition template="">
    <ui:define name="header">
        Add your header here or delete to use the default
    </ui:define>
    <ui:define name="content">
        Add your content here or delete to use the default
    </ui:define>
    <ui:define name="footer">
        Add your footer here or delete to use the default
    </ui:define>



<h:form>
    <div>
        <h:outputLabel value="titulo" />
        <h:inputText value="#{adminLivrosBean.livro.titulo}"/>
    </div>
    <div>
        <h:outputLabel value="descricao" />
        <h:inputTextarea rows="4" cols="8" value="#{adminLivrosBean.livro.descricao}" />
    </div>
        <h:outputLabel value="Números de Páginas" />
        <h:inputText value="#{adminLivrosBean.livro.numeroPaginas}"/>
    <div>
        <h:outputLabel value="Preço" />
        <h:inputText value="#{adminLivrosBean.livro.preco}"/>
    </div>
    <h:commandButton value="Cadastrar" />
</h:form>
</ui:composition> // fechando aqui? não seria assim?
</html>

Sim, eu usei o facelet composition Page, apenas para fazer um teste. Com isso vi que o que está dentro da Tag "ui" aparece no navegador, mas o que esta dentro da "form" não aparece.

irei um print de como fica no meu navegador:

http://www.mediafire.com/view/67ek5xdc55b4atp/problema_jsf.png

OBS: estou usando a tab "form" fora das tags "ui" . O que eu preciso que funcione mesmo é só o formulário. As tags "ui" são apenas um teste.

Marcos eu acho que oque ta dando pal no sua html é o seu teste com as ui. Tenta remover a parte do ui deixando só a do formulario mesmo!

<h:form>
    <div>
        <h:outputLabel value="titulo" />
        <h:inputText value="#{adminLivrosBean.livro.titulo}"/>
    </div>
    <div>
        <h:outputLabel value="descricao" />
        <h:inputTextarea rows="4" cols="8" value="#{adminLivrosBean.livro.descricao}" />
    </div>
        <h:outputLabel value="Números de Páginas" />
        <h:inputText value="#{adminLivrosBean.livro.numeroPaginas}"/>
    <div>
        <h:outputLabel value="Preço" />
        <h:inputText value="#{adminLivrosBean.livro.preco}"/>
    </div>
    <h:commandButton value="Cadastrar" />
</h:form>
</html>

E uma observação não vi nenhuma tag do body e do head no seu html, pode ser isso também!

Certo, fiz os ajustes mais ainda não funcionou :/

Print: http://www.mediafire.com/view/y269xyy42n40158/problema_jsf_2.png

Encontrei um problema semelhante no StackOverflow que fala que preciso modificar algumas coisas com no web.xml, mas notei que meu projeto não tem um arquivo web.xml, será que isso é o problema? como posso gerar esse arquivo?

http://stackoverflow.com/questions/3002047/jsf-form-is-not-showing-up

OBS: gerei o projeto usando Jboss Forge

Olá pessoal, estou tendo o mesmo problema em outro projeto, as tags JSF não são renderizadas. Alguém pode me ajudar?

Marcos cria um outro tópico acho que por ser antigo o pessoal irá demorar para ver!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software