Estou desenvolvendo a pouco tempo com o primefaces, porém estou com um problema qua já há tempos vem me importunando, procurei aqui no guj alguma solução porém aidna não encontrei. Talves alguém de vocês possa me ajudar.
A dúvida é a seguinte, crio uma página com componentes do prime como o datatable, wizard e outros… fica lindoooooo, faço um teste rodando somente ela e fica perfeito, porém quando eu a jogo em sessão (rodando pra valer) ela perde todos os efeitos como paginação etc… alguem poderia me ajudar?
como você está lançando a sessão? O que extra você adiciona na página? Coloca o exemplo do teu código pra podermos analizar e ver o que q está ocorrendo.
ederson_js
<?xml version="1.0" encoding="UTF-8" ?><!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: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"><ui:compositiontemplate="/templates/principal.xhtml"><h:head><metahttp-equiv="Content-Type"content="text/html; UTF-8"/></h:head><ui:definename="corpo"><h:body><h:form><p:tabView><p:tabtitle="Usuários">Usuários
<divalign="center"><h:messages/><p:dataTablevalue="#{usuarioBean.lista}"var="usuario"rows="8"paginator="true"emptyMessage="Usuarios não encontrados"style="width:100%"><f:facetname="header"><h:outputTextvalue="Listagem de Usuários"/></f:facet><p:columnstyle="width:16px"><p:rowToggler/></p:column><p:column><f:facetname="header">Código</f:facet><h:outputTextvalue="#{usuario.codigo}"/></p:column><p:column><h:graphicImagelibrary="imagens"name="bandeira_#{usuario.idioma}.png"/></p:column><p:column><f:facetname="header">Nome</f:facet><h:outputTextvalue="#{usuario.nome}"/></p:column><p:column><f:facetname="header">e-Mail</f:facet><ahref="mailto:#{usuario.email}">#{usuario.email}</a></p:column><p:column><h:commandLinkaction="#{usuarioBean.editar}"><h:graphicImagelibrary="imagens"name="edit.png"style="border:0"/><f:setPropertyActionListenertarget="#{usuarioBean.usuario}"value="#{usuario}"/><f:setPropertyActionListenertarget="#{usuarioBean.destinoSalvar}"value="/admin/principal"/></h:commandLink><h:commandLinkaction="#{usuarioBean.excluir}"onclick="if (!confirm('Confirma a exclusão do usuário #{usuario.nome}?')) return false;"><h:graphicImagelibrary="imagens"name="del.png"style="border:0"/><f:setPropertyActionListenertarget="#{usuarioBean.usuario}"value="#{usuario}"/></h:commandLink></p:column><p:rowExpansion><h:panelGridid="display"columns="2"cellpadding="4"style="width:300px;"styleClass="ui-widget-content"columnClasses="label, value"><f:facetname="header"><h:graphicImagelibrary="imagens"name="editar16.png"style="border:0"/></f:facet><h:outputLabelvalue="Nome:"/><h:outputTextvalue="#{usuario.nome}"/><h:outputLabelvalue="CPF:"/><h:outputTextvalue="#{usuario.cpf}"/><h:outputLabelvalue="Email:"/><h:outputTextvalue="#{usuario.email}"/><h:outputLabelvalue="LOGIN:"/><h:outputTextvalue="#{usuario.login}"/></h:panelGrid></p:rowExpansion></p:dataTable></div></p:tab><p:tabtitle="Produtos">Produtos
<divalign="center"><h:messages/><p:dataTablevalue="#{produtoBean.lista}"var="produto"rows="8"paginator="true"emptyMessage="Produtos não encontrados"style="width:100%"><f:facetname="header"><h:outputTextvalue="Listagem de Produtos"/></f:facet><p:columnstyle="width:16px"><p:rowToggler/></p:column><p:column><f:facetname="header">Código</f:facet><h:outputTextvalue="#{produto.codigo}"/></p:column><p:column><f:facetname="header">Nome</f:facet><h:outputTextvalue="#{produto.nome}"/></p:column><p:column><h:commandLinkaction="#{produtoBean.editar}"><h:graphicImagelibrary="imagens"name="edit.png"style="border:0"/><f:setPropertyActionListenertarget="#{produtoBean.produto}"value="#{produto}"/><f:setPropertyActionListenertarget="#{produtoBean.destinoSalvar}"value="/publico/testes"/></h:commandLink><h:commandLinkaction="#{produtoBean.excluir}"onclick="if (!confirm('Confirma a exclusão do produto #{produto.nome}?')) return false;"><h:graphicImagelibrary="imagens"name="del.png"style="border:0"/><f:setPropertyActionListenertarget="#{produtoBean.produto}"value="#{produto}"/></h:commandLink></p:column><p:rowExpansion><h:panelGridid="display"columns="2"cellpadding="4"style="width:300px;"styleClass="ui-widget-content"columnClasses="label, value"><f:facetname="header"></f:facet><h:outputLabelvalue="Nome:"/><h:outputTextvalue="#{produto.nome}"/><h:outputLabelvalue="NF:"/><h:outputTextvalue="#{produto.nf}"/><h:outputLabelvalue="Observação:"/><h:outputTextvalue="#{produto.obs}"/></h:panelGrid></p:rowExpansion></p:dataTable></div></p:tab><p:tabtitle="Relatórios">Relatórios</p:tab></p:tabView></h:form></h:body></ui:define></ui:composition></html>
esse cara por exemplo, fica show, com a paginação e listagem funcionando normalmente, mas qdo acesso ao sistema pelo login, e sou direcionando para essa mesma página, ele já não faz mais a paginação e perde tbm os efeitos do <p:rowExpansion>
A
andre.froes
possivelmente seja o nome da importação do seu projeto, o template. Faz o seguinte, coloca no composition assim:
assim ele vai chamar desde a raiz, porque caso o seu login inicie em um nível diferente, ele vai procurar um caminho que não existe.
ederson_js
Cara esse template é o do layout, mas o problema não está nele não, fiz o que você falou e não funcionou, rodei sem os “<ui:” ou seja sem importar nenhum template de layout, só na página branca mesmo, e continuou dando o mesmo erro,estranho demais não ?
bobfroes
Olá,
Tente colocar o “./” no camindo do template para ver o que acontece.
Olá amigo Bobfroes, com a página em teste unitário no raiz do WebContent, continuou rodando normalmente ao alterar, mas já dentro dá pasta admin/ a página nem carregou, deu um erro.
java.io.FileNotFoundException
at org.apache.naming.resources.DirContextURLConnection.getInputStream(DirContextURLConnection.java:381)
bobfroes
Deixe-me ver o código da página “principal.xhtml”.
ederson_js
Brother ! é um template de layout, acho que não está influenciando no problema não por que já fiz uns testes sem ele e continuou dando problema do mesmo jeito, mas vai lá :
<?xml version="1.0" encoding="UTF-8" ?><!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: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><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"/><title><ui:insertname="titulo">ITGSManager</ui:insert></title><h:outputStylesheetlibrary="css"name="estilo.css"/><styletype="text/css"><!--#logotipo{text-align:center;}--></style></h:head><h:body><divid="container"><divid="logotipo"><h:graphicImagelibrary="imagens"name="itgs_log2.jpg"/></div><divid="barra_menu"><ui:insertname="barra_menu"></ui:insert></div><divid="corpo"><ui:insertname="corpo"/></div><divid="rodape"><ui:insertname="rodape"><ui:includesrc="/templates/rodape.xhtml"/></ui:insert></div></div></h:body></html>
bobfroes
Qual é o escopo do seu Bean Gerenciado?
bobfroes
Tente ver o que o Log de erros do servidor de aplicação diz.
ederson_js
packagebr.com.wsdba24h.web.controle;importjavax.faces.context.FacesContext;importjavax.servlet.RequestDispatcher;importorg.springframework.stereotype.Controller;importbr.com.wsdba24h.web.util.FacesUtil;@Controller("loginMB")publicclassLoginMB{publicLoginMB(){}publicStringlogar(){try{RequestDispatcherdispatcher=FacesUtil.getServletRequest().getRequestDispatcher("/j_spring_security_check");dispatcher.forward(FacesUtil.getServletRequest(),FacesUtil.getServletResponse());FacesContext.getCurrentInstance().responseComplete();}catch(Exceptionex){FacesUtil.exibirMensagemErro(ex.getMessage());returnnull;}returnnull;}publicStringlogout(){FacesUtil.exibirMensagemAlerta("Sessão finalizada com sucesso");try{RequestDispatcherdispatcher=FacesUtil.getServletRequest().getRequestDispatcher("/j_spring_security_logout");dispatcher.forward(FacesUtil.getServletRequest(),FacesUtil.getServletResponse());FacesContext.getCurrentInstance().responseComplete();}catch(Exceptionex){FacesUtil.exibirMensagemErro("Erro ao sair do sistema");returnnull;}returnnull;}}
ederson_js
Um faceUtil
packagebr.com.wsdba24h.web.util;importjava.util.Map;importjavax.faces.application.FacesMessage;importjavax.faces.context.ExternalContext;importjavax.faces.context.FacesContext;importjavax.servlet.ServletContext;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/** * Classe utilitária para desenvolvimento JSF */publicclassFacesUtil{publicstaticStringgetRequestParameter(Stringname){return(String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);}publicstaticvoidexibirMensagemSucesso(Stringmensagem){exibirMensagem(FacesMessage.SEVERITY_INFO,mensagem);}publicstaticvoidexibirMensagemAlerta(Stringmensagem){exibirMensagem(FacesMessage.SEVERITY_WARN,mensagem);}publicstaticvoidexibirMensagemErro(Stringmensagem){exibirMensagem(FacesMessage.SEVERITY_ERROR,mensagem);}privatestaticvoidexibirMensagem(FacesMessage.Severityseverity,Stringmensagem){FacesMessagefacesMessage=newFacesMessage(severity,"",mensagem);FacesContext.getCurrentInstance().addMessage(null,facesMessage);}publicstaticExternalContextgetExternalContext(){returnFacesContext.getCurrentInstance().getExternalContext();}publicstaticMapgetSessionMap(){returnFacesContext.getCurrentInstance().getExternalContext().getSessionMap();}publicstaticServletContextgetServletContext(){return(ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext();}publicstaticHttpServletRequestgetServletRequest(){return(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();}publicstaticHttpServletResponsegetServletResponse(){return(HttpServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();}}
bobfroes
Veja Lá no seu arquivo faces-config.xml algo do tipo.