0

我有一个<p:dataTable editable="true">包含一个<p:inputText>有的<f:validateLength/>
_并且有相同的验证我如何在我的 bean 中处理这个验证错误来做我尝试过的某项业务<p:inputText><f:validateLength/>
<p:inputText>

FacesContext context = FacesContext.getCurrentInstance();
Iterator<FacesMessage> messages = context.getMessages();

但我收到消息该怎么办,
我也尝试过

FacesContext context = FacesContext.getCurrentInstance();
boolean validationError = context.isValidationFailed();

我还阅读了文档FacesContext#isValidationFailed
并且它没有提供有关如何使用它的任何新细节,
但是如果验证成功或失败,它总是返回 false
我是否以错误的方式使用它,或者我错过了这个函数

4

2 回答 2

0

最好的实现方式是创建一个自定义验证器并从组件中调用它。由于您是从组件传递标签,因此您可以在验证器中添加类似{0} XXXXXXXXXXXXX的消息。这样,您可以为不同的组件提供不同的错误消息。您可以在属性文件中配置错误消息并在验证器类中读取。

希望这会有所帮助。

于 2013-02-22T07:54:38.770 回答
0

检查输入字段的f:validateLength长度,具体取决于您添加到标签的maximum和属性,例如:minimum

<f:validateLength maximum="5" minimum="2"/>

由于这是 JSF 内置验证器之一,如果您为组件添加p:messageorh:message标记或为整个页面添加全局标记,您将收到一条标准错误消息(如果您愿意,可以更改默认错误消息)。

对于自定义验证,您应该获取的validator属性p:inputText并将其绑定到支持 bean 中的验证器方法。然后你可以验证你喜欢的任何东西。

于 2013-02-22T07:15:04.803 回答