我已将代码最小化,以便更好地向您展示不起作用的内容。
<h:body>
<f:view>
<h:form id="wbSelectForm">
<p:commandButton id="viewWorkbenchButton" icon="ui-icon-show"
title="View Workbench" update=":wbTestPanel"
actionListener="#{WorkbenchControllerBean.test}">
</p:commandButton>
</h:form>
<p:panel id="wbTestPanel">
Test: Active Wb: #{WorkbenchControllerBean.number}
</p:panel>
</f:view>
</h:body>
当我按下commandButton时,我希望'wbTestPanel'正在更新,这在某种程度上不会发生。我知道因为没有调用WorkbenchControllerBean.getNumber()。
我使用的是primefaces 3.5。我已经尝试了'process'-attribute的差异值以及将RequestContext.getCurrentInstance().update("wbTestPanel")
放在WorkbenchControllerBean.test() - 方法中。
我认为可能代码是正确的,但是项目或运行时环境(Java 7 + JBoss 7.1.1)中的任何设置都会阻止primefaces更新其他面板。你能不能给我一个提示要搜索的内容?
提前致谢!
答案 0 :(得分:0)
您确定调用了test()方法吗? 如果是,您可以尝试使用以下更新表达式吗?
update="@([id$=wbTestPanel])"
否则,可能会因为验证错误而未调用test()方法。如果是这种情况,您可以使用debug或firebug进行检查。
答案 1 :(得分:-1)
在:
id
记住
如果您进行对话。
应关闭Dialog旧表单标记之前。
然后,拨号内容应放入另一种形式。
使用update=":dialougeid, :dialougeFormId"