在JSF SelectOneMenu的不同位置使用两条验证消息

时间:2016-07-16 18:05:13

标签: validation jsf drop-down-menu jsf-2

我正在使用JSF下拉列表。这是我的代码

<h:selectOneMenu id="selectedMenu" value="#{bean.selectedVal}" validator="#{bean.validate}" validatorMessage="#{bean.message}">
    <f:selectItems value="#{bean.list}" .../>
    <f:ajax event="change" render="frm:msgSelectedMenu1" />
</h:selectOneMenu>
<h:message for="selectedMenu" style="color:red" id="msgSelectedMenu1" />
<h:message for="selectedMenu" style="color:green" id="msgSelectedMenu2" />

我正在解析抛出java异常的验证错误消息。

public void validate(FacesContext context, UIComponent component, Object value)
        throws ValidatorException {
 ...
 if (condition 1) {
    FacesMessage msg = new FacesMessage();
    setMessage("Error_Message_1");
    throw new ValidatorException(msg);
 }}

在此原因错误消息中成功与'msgSelectedMenu1'绑定。但在某些原因中,我想为某些选定项目设置另一条错误消息(“Error_Message_2”),其中包含'msgSelectedMenu2'。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用actionListener的{​​{1}},检查f:ajax中的值,然后使用actionListener ValidatorException rendered删除h:message属性

validator