0

我根据以下内容进行了 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="kilometres" 选项时,不会显示任何验证消息。我错过了什么还是一个错误?

最好的祝福

4

1 回答 1

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"/>

展示:AJAX - 验证

更新

为了显示给定组件的多条消息(带有p:messages),您还需要for="kilometres"在支持 bean 中指定相关的组件 ID:

FacesContext context = FacesContext.getCurrentInstance();

context.addMessage("kilometres", new FacesMessage("Message 1"));
context.addMessage("kilometres", new FacesMessage("Message 2"));
于 2012-11-05T21:01:10.547 回答