当前位置: 首页 > 知识库问答 >
问题:

Primefaces消息“for”参数不适用于bean验证

冯祺
2023-03-14

我有一个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”选项时,不会显示任何验证消息。我错过了什么还是一个错误?

顺致敬意,

共有1个答案

乌修筠
2023-03-14

使用<代码>

<p:outputLabel for="kilometres" value="Kilometres" />
<p:inputText id="kilometres" value="#{bean.vehicle.kilometres}">
    <p:ajax/>
</p:inputText>
<p:message for="kilometres"/>

展示:AJAX-验证

更新

为了显示给定组件的多条消息(带有消息),您需要在中为公里数指定相关组件ID,并在支持bean中指定:

FacesContext context = FacesContext.getCurrentInstance();

context.addMessage("kilometres", new FacesMessage("Message 1"));
context.addMessage("kilometres", new FacesMessage("Message 2"));

 类似资料:
  • 我想将排序添加到PrimeFaces 3.3数据表并创建了以下ViewScoped bean,它存储列表,因此不会一直从EJB中获取: 这是使用bean的视图: 问题是,我可以单击列标题进行排序,但表仍然未排序,即使初始排序不起作用。当您在getList()方法中设置断点时,我可以看到在处理请求期间多次从EJB中提取列表。只要视图在ViewScope中处于活动状态,不应该存储bean吗?

  • 我正在尝试使用Hibernate Validator 5.0.1和JSF2.2,但自mojarra版本2.2.3以来,它们的集成似乎被破坏了。我创建了一个小应用程序来演示这个问题,并获得异常“javax.servlet.ServletException:表达式错误:命名对象:未找到javax.faces.Bean”在Tomcat 7.0.42上运行时。 还有其他人有这个问题吗? webapp/页面

  • 我希望对spring服务的参数使用java bean验证注释。考虑以下服务:

  • 从Quarkus1.11.3升级后。最终到2.2.3。最终,我的单位测试失败,原因是:java.lang.非法状态异常:io.quarkus.test.junit.mockito.注入Mock的无效使用——注入的bean没有声明CDI正常范围,而是:javax.inject.Singleton。违规字段是测试类ch.zhaw.ba.services.order.MyTest的云EventPubli

  • 我正在使用Primefaces客户机bean验证,但它不起作用,错误消息消失,即使验证失败也会调用Listener。 示例-xhtml- 我正在使用-Primefaces 4 Jsf 2.2.6(mojarra)tomcat 7 请帮帮我。谢了。

  • 我正在使用: PrimeFaces 6.1 JSF:2.2.10 javax.validation:1.1.0.final 验证程序IMPL:hibernate-validator 5.0.1.final GAE:1.9.52 以下是使用后端bean进行CSV(客户端验证)的示例:https://www.primefaces.org/showcase/ui/CSV/bean.xhtml 我现在得到