Jsf 在条件渲染块中未调用ActionListener方法

Jsf 在条件渲染块中未调用ActionListener方法,jsf,Jsf,我有一段代码,其中一些按钮仅在特定条件下显示,如下所示: <h:panelGroup rendered="#{mayusculasBean.jefeCerca}"> <h:panelGrid columns="4"> <h:commandButton value="Listar" actionListener="#{gestorEmpleados.listarEmpleados}" immediate="true"/&g

我有一段代码,其中一些按钮仅在特定条件下显示,如下所示:

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

...`
呈现的
属性工作正常。问题是当按下
commandButton
时,没有调用
actionListener
方法。但是,如果我去掉了
rendered
属性,则按钮工作正常

我认为这可能与
Jsf
请求的不同阶段有关,因此当按下
commandButton
时,我不知道为什么
rendered
属性的计算结果为false,从而避免调用
actionListener
方法。。。但这只是猜测,我真的不知道


有任何帮助吗?

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


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

为什么要使用actionListener属性而不是action属性?因为我不是在页面之间导航,而是停留在同一页面中。无论如何,这是一个很好的提示,但我将其更改为action属性,并且仍然没有方法调用。如果此答案解决了您的问题,只需接受此答案即可。:-)