我有一个像这样的JSF命令:
<h:commandLink id="testId" onclick="if (#{bean.isPageOpen}) dlg.show();" />
boolean bean.isPageOpen最初为false,因此未打开dlg小部件。现在,当我更改条件,即bean.isPageOpen返回true时,窗口小部件仍然无法打开。
EL表达式只评估一次,而且从不再评估过JSF commandLink吗?
谢谢, - CSN
答案 0 :(得分:1)
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"/>