JSF + Filtros

5 respostas
M

Boa Tarde!
Pessoal estou começando a programar com JSF.
E quero fazer um exemplo que agora no começo seria simples mas depois tenho que implementar para mais casos.
Por exemplo:
Tenho uma página de login e após o usuário logado ele vai ver uma página com dois botões: Botao1 e Botao2 (POR EXEMPLO)
e dependendo do tipo do usuário ele verá apenas o Botao1 ou apenas o Botao2 ou os dois botoes.

Alguém tem alguma dica como posso filtrar isso? Eu já tenho todas as informações do usuário em sessão e consigo até verificar se ele esta logado ou nao.
Mas minha dificuldade é como ‘esconder’ esse botão caso seja necessário…

Fico no aguardooo

Obrigado =D

5 Respostas

L

coloque um atributo booleano no se bean e use assim na pagina

<h:commandButton action="suaacao" value="seuBotao" disabled="#{!seuBean.CampoBooleano}"></h:commandButton>
M

Valeu obrigado lgweb é isso mesmo que eu quero…
mas eu montei uma uma funcao no meu bean e nao deu certo nao… =\

Olha o erro:

5/03/2009 17:07:29 com.sun.faces.lifecycle.Phase doPhase SEVERE: JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /restrito/paginaCadastrosx.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@1398044] 05/03/2009 17:07:29 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet Faces Servlet threw exception org.apache.jasper.el.JspPropertyNotFoundException: /restrito/paginaCadastrosx.jsp(164,28) '#{LoginController.validaUsuarioInserir}' Property 'validaUsuarioInserir' not found on type com.autofax.mdc.controller.usuario.LoginController at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:104) at javax.faces.component.html.HtmlCommandLink.isDisabled(HtmlCommandLink.java:199) at sun.reflect.GeneratedMethodAccessor45.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1585) at com.sun.faces.renderkit.html_basic.CommandLinkRenderer.encodeBegin(CommandLinkRenderer.java:109) at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:928) at javax.faces.render.Renderer.encodeChildren(Renderer.java:148) at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930) at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933) at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266) at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197) at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108) at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:196) at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110) at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:177) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:267) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:380) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:507) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source)

Estou verificand…
Alguem tem alguma dica???
Valeu Obrigado

L

O que este metodo faz?explique melhor e poste o codigo tbm,se possivel.

M

Bom eu só fiz para teste ma da uma olhada:

<h:commandLink immediate="true" value="Teste" action="#{UsuarioController.cadastrarUsuario}" disabled="#{LoginController.validaUsuarioInserir}"> <f:param id="id_cadastrarUsuario" name="id_recupera" value="11" /> </h:commandLink>

esse é o meu command link que chama essa funcao no caso da tag disabled

public boolean validaUsuarioInserir() {
return false;
}
M

Consegui… Ele fica esperando um bean… Eu estava chamando uma função… Então oq eu fiz no nome da funcao foi:

public boolean getValidaUsuarioInserir() {  
    return false;  
    }

Agora funcionou…

Vc teria uma forma melhor de fazer isso???
Mesmo assim obrigado e valeu pela ajuda
=D

Criado 5 de março de 2009
Ultima resposta 5 de mar. de 2009
Respostas 5
Participantes 2