2014-11-08 72 views
2

我有了这个代码,其中的一些按钮只显示在一定条件下,这样不叫:ActionListener的方法时,在有条件的渲染块

<h:panelGroup rendered="#{mayusculasBean.jefeCerca}"> 
    <h:panelGrid columns="4"> 
    <h:commandButton value="Listar" 
     actionListener="#{gestorEmpleados.listarEmpleados}" 
     immediate="true"/> 
    ...` 
</h:panelGroup> 

rendered属性好的工作。问题是当按下commandButtonactionListener方法未被调用。但是,如果我摆脱rendered属性,该按钮工作正常。

我想可能是有关Jsf请求的不同阶段,所以当commandButton按下rendered属性,我不知道为什么,计算结果为假,则不会出现调用actionListener方法..但这只是一个猜测,我真的不知道。

任何帮助?

+0

为什么要使用actionListener属性而不是action属性? – 2014-11-08 19:06:58

+0

因为我不在页面之间导航,所以我停留在同一页面上。无论如何,这是一个很好的提示,但我改变它为行动属性,仍然没有方法调用。 – didgewind 2014-11-08 20:50:31

回答

0

如果您的mayusculasBean@RequestScoped,那么在响应提交后,您的命令按钮组件将不会被服务器跟踪。

如果这是您的情况,您需要将mayusculasBean更改为更宽的范围,例如@ViewScoped

+0

嘿!谢谢,这解决了它。 – didgewind 2014-11-09 10:32:08

+1

如果此答案解决了您的问题,只需接受此答案。 :-) – siva636 2014-11-09 10:42:12