JSF commandLink onclick EL表达式重新计算

JSF commandLink onclick EL表达式重新计算,jsf,commandlink,Jsf,Commandlink,我有一个JSF命令,如下所示: <h:commandLink id="testId" onclick="if (#{bean.isPageOpen}) dlg.show();" /> 布尔bean.isPageOpen最初为false,因此dlg小部件未打开。现在,当我更改条件,即bean.isPageOpen返回true时,小部件仍然无法打开 对于JSF commandLink,EL表达式是否只计算一次,而不再计算 谢谢, -csnJavascript代码在页面加载时生成。如

我有一个JSF命令,如下所示:

<h:commandLink id="testId" onclick="if (#{bean.isPageOpen}) dlg.show();" />

布尔bean.isPageOpen最初为false,因此dlg小部件未打开。现在,当我更改条件,即bean.isPageOpen返回true时,小部件仍然无法打开

对于JSF commandLink,EL表达式是否只计算一次,而不再计算

谢谢,
-csn

Javascript代码在页面加载时生成。如果您检查页面源代码,您可以看到如下所示的onclick

 onclick="if (false) dlg.show();"
如果您想在bean中使用更新的值,您可以使用这样的结构。我使用的是primefaces

<p:inputText id="textId" value="#{{bean.isPageOpen}" />
<h:commandLink id="testId" onclick="refresh(); if (document.getElementById('textId').value=='true') dlg.show();" />
<p:remoteCommand name="refresh" actionListener="#{bean.updateisPageOpen}" update ="textId"/>