Inserir paginas JSP como Clientes de Templates Facelets

7 respostas
maurijava

Senhores do saber Java!

Peço auxílio para saber como faço para carregar uma pagina JSP como um cliente Facelets.

É mais ou menos assim:

Tem um Template com Top, content e botton

Consigo carregar o Menu no Top, porém quando clico no botão para carregar a pagina simplismente não funciona!

Sou iniciante em JSF e Facelets e acho que o defeito está entre o encosto da cadeira e o teclado :smiley: , alguém pode me ajudar?

Só para registrar, estou colocando o código do formulário em um ClientTemplat, se deixar em JSP não funciona, se colocar em xhtml ele não reconhece algumas tags JSF, e eu declarei as tags xmlns bem certim, mas num funciona nem mordido de macaco! :lol:

No aguardo,

7 Respostas

Roger75

Para uso de templates facelets o melhor é você usar xhtml mesmo, pois JSP não é recomendável devido a conflitos que existem no ciclo de vida entre JSF e JSP. Pelo menos foi isso que o instrutor falou…

maurijava

Se eu pegar os código da página JSP e copiar para dentro do xhtml funciona? Deveria funcionar?

Eu fiz isso mas fica dá pau!

em xhtml muda as tags?

Roger75

maurijava:
Se eu pegar os código da página JSP e copiar para dentro do xhtml funciona? Deveria funcionar?

Eu fiz isso mas fica dá pau!

em xhtml muda as tags?

Tem que usar as tags próprias de JSF mesmo.

maurijava

Velho! Sem querer incomodar, mas já incomodando…

dá uma olhada nesse código ai. To usando as tags do JSF e não funciona, porém numa pagina .jsp funciona redondinho.

Veja que as tags são JSF

O erro que dá é: na linha 20 o atributo value está associado a um elemento do tipo nulo não deve conter o caracter ‘<’. marquei a linha 20.

<?xml version='1.0' encoding='UTF-8' ?>
<body>
    
    <ui:composition template="./../../newTemplate.xhtml">
        
       
        <ui:define name="content">
            
            <h:panelGroup id="messagePanel" layout="block">
        <h:messages errorStyle="color: red" infoStyle="color: green" layout="table"/>
    </h:panelGroup>

    <h1>Listing Compromisso Items</h1>

    <h:form styleClass="jsfcrud_list_form">
LINHA 20 ->            <h:outputText escape=false value="(No Compromisso Items Found)
" rendered="#{compromisso.pagingInfo.itemCount == 0}" />

<h:panelGroup rendered="#{compromisso.pagingInfo.itemCount > 0}">

<h:outputText value=Item #{compromisso.pagingInfo.firstItem + 1}…#{compromisso.pagingInfo.lastItem} of #{compromisso.pagingInfo.itemCount}”/> 

<h:commandLink action="#{compromisso.prev}" value=Previous #{compromisso.pagingInfo.batchSize}” rendered="#{compromisso.pagingInfo.firstItem >= compromisso.pagingInfo.batchSize}"/> 

<h:commandLink action="#{compromisso.next}" value=Next #{compromisso.pagingInfo.batchSize}” rendered="#{compromisso.pagingInfo.lastItem + compromisso.pagingInfo.batchSize <= compromisso.pagingInfo.itemCount}"/> 

<h:commandLink action="#{compromisso.next}" value=Remaining #{compromisso.pagingInfo.itemCount - compromisso.pagingInfo.lastItem}”

rendered="#{compromisso.pagingInfo.lastItem < compromisso.pagingInfo.itemCount && compromisso.pagingInfo.lastItem + compromisso.pagingInfo.batchSize > compromisso.pagingInfo.itemCount}"/>

<h:dataTable value="#{compromisso.compromissoItems}" var=item border=0 cellpadding=2 cellspacing=0 rowClasses=jsfcrud_odd_row,jsfcrud_even_row rules=all style=border:solid 1px>

<h:column>

<f:facet name=header>

<h:outputText value=Id/>

</f:facet>

<h:outputText value="#{item.id}"/>

</h:column>

<h:column>

<f:facet name=header>

<h:outputText value=Assunto/>

</f:facet>

<h:outputText value="#{item.assunto}"/>

</h:column>

<h:column>

<f:facet name=header>

<h:outputText value=Inicio/>

</f:facet>

<h:outputText value="#{item.inicio}">

<f:convertDateTime pattern=MM/dd/yyyy HH:mm:ss />

</h:outputText>

</h:column>

<h:column>

<f:facet name=header>

<h:outputText value=Fim/>

</f:facet>

<h:outputText value="#{item.fim}">

<f:convertDateTime pattern=MM/dd/yyyy HH:mm:ss />

</h:outputText>

</h:column>

<h:column>

<f:facet name=header>

<h:outputText value=Descrição/>

</f:facet>

<h:outputText value="#{item.descrição}"/>

</h:column>

<h:column>

<f:facet name=header>

<h:outputText escape=false value=" “/>

</f:facet>

<h:commandLink value=“Show” action=”#{compromisso.detailSetup}">

<f:param name=jsfcrud.currentCompromisso value="#{jsfcrud_class[‘br.com.mda.jsf.util.JsfUtil’].jsfcrud_method[‘getAsConvertedString’][item][compromisso.converter].jsfcrud_invoke}"/>

</h:commandLink>

<h:outputText value=" “/>

<h:commandLink value=“Edit” action=”#{compromisso.editSetup}">

<f:param name=jsfcrud.currentCompromisso value="#{jsfcrud_class[‘br.com.mda.jsf.util.JsfUtil’].jsfcrud_method[‘getAsConvertedString’][item][compromisso.converter].jsfcrud_invoke}"/>

</h:commandLink>

<h:outputText value=" “/>

<h:commandLink value=“Destroy” action=”#{compromisso.destroy}">

<f:param name=jsfcrud.currentCompromisso value="#{jsfcrud_class[‘br.com.mda.jsf.util.JsfUtil’].jsfcrud_method[‘getAsConvertedString’][item][compromisso.converter].jsfcrud_invoke}"/>

</h:commandLink>

</h:column>
</h:dataTable>
        </h:panelGroup>
        <br />
        <h:commandLink action="#{compromisso.createSetup}" value="New Compromisso"/>
        <br />
        <br />
        <h:commandLink value="Index" action="welcome" immediate="true" />


    </h:form>
   
        </ui:define>

        
    </ui:composition>
    
</body>
maurijava

Senhores,

Achei uma coisa aqui, so não sei como resolver, é nesse trecho:
[code]rendered= "#{compromisso.pagingInfo.lastItem + compromisso.pagingInfo.batchSize <= compromisso.pagingInfo.itemCount}"/> 

ele tá entendendo que o <= é uma nova tag que fecha com o próximo />, tem outra forma de falar maior ou igual em java?

Roger75

Tente usar CDATA:
http://www.w3schools.com/xml/xml_cdata.asp

maurijava

Boa dica Roger!

Tentei aqui, mas não funciona pq tem Strings, mesmo assim valeu…

Acho que vou ter que reescrever tudo, e fazer todas as operações fora dos Facelets xhtml.

:frowning:

se tivesse uma forma de usar os JFSs em paginas .jsp, e depois carregar as paginas no Facelets, tipo como no Frame, facilitaria minha vida.

se alguem souber eu agradeço!

Criado 30 de janeiro de 2011
Ultima resposta 31 de jan. de 2011
Respostas 7
Participantes 2