我正在寻找一种在表单提交后从backing bean更改primefaces命令按钮的update属性的方法。我想要实现的是根据backing bean方法的结果更新组件id。
例如,我正在尝试使用命令按钮更新表单和growl消息,现在如果从支持bean发生了一些错误(不是验证错误),我只需要更新growl消息并且表单不应该不会更新。
<p:commandButton value="Finish Editing"
action="#{editBean.finish}" icon="ui-icon-check"
style="width:200px;margin-left:60px;" update=":studentEditForm :messageForm:applyMessages" />
答案 0 :(得分:3)
您可以通过RequestContext#update()
使用编程API。
public void finish() {
// ...
if (someCondition) {
RequestContext.getCurrentInstance().update("someClientId");
} else {
RequestContext.getCurrentInstance().update("otherClientId");
}
}
不要忘记从命令按钮中删除update
属性。
答案 1 :(得分:-1)
更改此
<p:commandButton value="Finish Editing"
action="#{editBean.finish}" icon="ui-icon-check"
style="width:200px;margin-left:60px;" update=":studentEditForm :messageForm:applyMessages" />
到
<p:commandButton value="Finish Editing"
action="#{editBean.finish}" icon="ui-icon-check"
style="width:200px;margin-left:60px;" update="#{editBean.updateString}" />
现在您必须根据需要在EditBean类中更新此字符串。