Na minha página index.xhtml eu criei um <p:menu> com um item para uma página de listagem de equipamentos.
O código da página index.xhtml é o seguinte:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:p="http://primefaces.prime.com.tr/ui"><h:head><title>CE - Controle de Equipamentos</title></h:head><h:body><h:form><p:menutype="tiered"style="width:180px"><p:submenulabel="Equipamento"icon="ui-icon ui-icon-extlink"><p:menuitemvalue="Novo"icon="ui-icon ui-icon-disk"url="/novoEquipamento.jsf"/><p:menuitemvalue="Lista"icon="ui-icon ui-icon-arrowrefresh-1-w"actionListener="#{equipamentoMBean.listar}"/></p:submenu></p:menu></h:form></h:body></html>
A regra de navegação no arquivo faces-config.xml defini da seguinte maneira:
Quando eu clico no item(Lista) do <p:Menu> o código é executado normalmente, trazendo a lista de equipamentos sem problemas algum! O problema é que a página “listaEquipamento.xhtml” não é exibida e não dá erro algum!!! É como se não houvesse evento algum ao clicar no item de menu!
Alguém poderia me dizer o que estou fazendo de errado?? Obrigado.
Agora sim cara… fui redirecionado para a página “listaEquipamento.xhtml”!!! Porém não foram listados os dados… sendo que quando faço um debug, a consulta me retorna uma lista populada normalmente, porém não são exibidas na página!!!
humberto.lima
Cara, tens que observar o escopo do teu MB, se for request, acho q não funfa com redirect. Ou voce tira o redirect, ou coloca pra escopo de sessão. Ou ainda, podes utilizar uma tag saveState ou keepAlive, não lembro de quem é, pra persistir o MB entre as paginas (acho essa a melhor opção).
[]'s
Humberto Lima
B
build_successful
o seu MB onde vc faz a consulta esta como ‘session’ ou ‘request’ ?
como esta sua listaEquipamento.xhtml… poe ela ae pra gente da uma olhada.
flws
rodrigo.fai
humberto.lima:
Cara, tens que observar o escopo do teu MB, se for request, acho q não funfa com redirect, ou tira o redirect, ou coloca pra escopo de sessão. Ou ainda, podes utilizar uma tag saveState, não lembro de quem é, pra persistir o MB entre as paginas (acho essa a melhor opção).
[]'s
Humberto Lima
Bom… mudei o escopo do MBean pra @SessionScoped e não surtiu efeito!!! Vou pesquisar sobre essa tag saveState, pode ser que resolva meu problema… Valeu
rodrigo.fai
build_successful:
o seu MB onde vc faz a consulta esta como ‘session’ ou ‘request’ ?
como esta sua listaEquipamento.xhtml… poe ela ae pra gente da uma olhada.
flws
Código da listaEquipamento.xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="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:p="http://primefaces.prime.com.tr/ui"><h:head><title>Lista de Equipamentos</title></h:head><h:body><h:formprependId="false"><p:dataTablevar="equipamento"value="#{equipamentoMBean.equipamentos}"paginator="true"rows="10"style="font-size:12px; font-family:Verdana"><p:column><f:facetname="header"><h:outputTextvalue="Departamento"/></f:facet><h:outputTextvalue="#{equipamento.departamento}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Entidade"/></f:facet><h:outputTextvalue="#{equipamento.entidade}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Funcionário"/></f:facet><h:outputTextvalue="#{equipamento.funcionario}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Número de série"/></f:facet><h:outputTextvalue="#{equipamento.numeroDeSerie}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Número de patrimônio"/></f:facet><h:outputTextvalue="#{equipamento.numeroDoPatrimonio}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Tipo"/></f:facet><h:outputTextvalue="#{equipamento.tipo}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Marca"/></f:facet><h:outputTextvalue="#{equipamento.marca}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Modelo"/></f:facet><h:outputTextvalue="#{equipamento.modelo}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Status"/></f:facet><h:outputTextvalue="#{equipamento.status}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Sistema Operacional"/></f:facet><h:outputTextvalue="#{equipamento.sistemaOperacional}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Pacote Office"/></f:facet><h:outputTextvalue="#{equipamento.pacoteOffice}"/></p:column><p:column><f:facetname="header"><h:outputTextvalue="Observação"/></f:facet><h:outputTextvalue="#{equipamento.observacao}"/></p:column><p:columnstyle="width:32px"><p:commandButtonupdate="display"oncomplete="equipamentoDialog.show()"image="ui-icon ui-icon-search"><f:setPropertyActionListenervalue="#{equipamento}"target="#{dataTableMBean.selectedEquipamento}"/></p:commandButton></p:column></p:dataTable><p:dialogheader="Car Detail"widgetVar="equipamentoDialog"resizable="false"width="200"showEffect="explode"hideEffect="explode"><h:panelGridid="display"columns="2"cellpadding="4"><h:outputTextvalue="Departamento:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.departamento}"/><h:outputTextvalue="Entidade:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.entidade}"/><h:outputTextvalue="Funcionário:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.funcionario}"/><h:outputTextvalue="Número de série:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.numeroDeSerie}"/><h:outputTextvalue="Número do patrimônio:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.numeroDoPatrimonio}"/><h:outputTextvalue="Tipo:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.tipo}"/><h:outputTextvalue="Marca:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.marca}"/><h:outputTextvalue="Modelo:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.modelo}"/><h:outputTextvalue="Status:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.status}"/><h:outputTextvalue="Sistema Operacional:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.sistemaOperacional}"/><h:outputTextvalue="Pacote Office:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.pacoteOffice}"/><h:outputTextvalue="Observação:"/><h:outputTextvalue="#{dataTableMBean.selectedEquipamento.observacao}"/></h:panelGrid></p:dialog></h:form></h:body></html>
rodrigo.fai
Na página listaEquipamento.xhtml eu utilizo o DataTableMBean, cujo código é o seguinte:
cara…estranho.
não vi nada de errado.
poe o debug getEquipamentos() e ve se na hora que ele renderizar a pagina listaEquipamento.xhtml
ele esta sendo chamado e se esta populado ainda.
rodrigo.fai
build_successful:
cara…estranho.
não vi nada de errado.
poe o debug getEquipamentos() e ve se na hora que ele renderizar a pagina listaEquipamento.xhtml
ele esta sendo chamado e se esta populado ainda.
cara… fiz oq pediu, e quando é chamado o método getEquipamentos() a lista não é mais populada!!
Será que pode ser o escopo do MBean, ou o fato de eu estar utilizando 2 MBeans pra esta página???
B
build_successful
acho que não tem problema o fato de usar dois MB na mesma pagina.
o estranho eh que seu Mbean EquipamentoMBean esta como @SessionScoped …
então ele não deveria zerar a lista novamente…
verifica seu metodo listar() , ve se ele esta sendo executado mais de uma vez apos ele ter populado a lista.
rodrigo.fai
build_successful:
acho que não tem problema o fato de usar dois MB na mesma pagina.
o estranho eh que seu Mbean EquipamentoMBean esta como @SessionScoped …
então ele não deveria zerar a lista novamente…
verifica seu metodo listar() , ve se ele esta sendo executado mais de uma vez apos ele ter populado a lista.
O método listar() é executado uma vez somente!!!
rodrigo.fai
build_successful:
acho que não tem problema o fato de usar dois MB na mesma pagina.
o estranho eh que seu Mbean EquipamentoMBean esta como @SessionScoped …
então ele não deveria zerar a lista novamente…
verifica seu metodo listar() , ve se ele esta sendo executado mais de uma vez apos ele ter populado a lista.
RESOLVIDO!!!
A classe EquipamentoMBean estava anotada como @SessionScoped porém, no arquivo faces-config.xml esta classe estava como “request”!!! Muito vacilo meu mesmo…
B
build_successful
nohh…que bosta emm
pior que isso ja aconteceu comigo tabem!
haushiuauha
faz parte!
flws