我根据以下内容进行了bean验证:
@Min(value = 0)
@Max(value = 1000000)
private int kilometres;
在我的脸上,我有:
<p:messages autoUpdate="true" showDetail="true" showSummary="true" />
<p:outputLabel for="kilometres" value="Kilometres" />
<p:inputText id="kilometres" value="#{bean.vehicle.kilometres}">
<p:ajax event="change" />
</p:inputText>
当我拥有它时它工作正常,除了将显示所有字段ID的所有消息。我想为每个字段指定,如下所示:
<p:messages for="kilometres" autoUpdate="true" showDetail="true" showSummary="true" />
但是,当我添加for =“km”选项时,则不会显示验证消息。我错过了什么或者它是一个错误吗?
祝你好运
答案 0 :(得分:4)
使用<p:message/>
组件分别显示每个输入组件的验证消息:
<p:outputLabel for="kilometres" value="Kilometres" />
<p:inputText id="kilometres" value="#{bean.vehicle.kilometres}">
<p:ajax/>
</p:inputText>
<p:message for="kilometres"/>
<强>更新强>
为了显示给定组件的多条消息(p:messages
),您需要在for="kilometres"
和支持bean中指定相关的组件ID:
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage("kilometres", new FacesMessage("Message 1"));
context.addMessage("kilometres", new FacesMessage("Message 2"));