在Primefaces中动态更改更新属性

时间:2013-06-20 09:03:13

标签: jsf primefaces facelets

我正在寻找一种在表单提交后从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" />

2 个答案:

答案 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类中更新此字符串。