Seam Hibernate验证程序显示JSF消息

Seam Hibernate验证程序显示JSF消息,jsf,seam,bean-validation,Jsf,Seam,Bean Validation,我有一个使用Seam 2.2.2-JSF 1.1-Hibernate Validator 3.1.0.GA的应用程序。我正在尝试使用hibernate验证消息=()选项显示自定义消息。message=()将为其他验证器(如@Length)显示。但是我为@NotNull设置的消息不起作用 下面是代码片段 <s:decorate id="decoration1" template="/includes/myTemplate.xhtml"> <ui:define

我有一个使用Seam 2.2.2-JSF 1.1-Hibernate Validator 3.1.0.GA的应用程序。我正在尝试使用hibernate验证消息=()选项显示自定义消息。message=()将为其他验证器(如@Length)显示。但是我为@NotNull设置的消息不起作用

下面是代码片段

<s:decorate id="decoration1" template="/includes/myTemplate.xhtml">         
 <ui:define name="label">userId</ui:define>
 <h:inputTextarea label="userIdFromTemplate" value="#myController.user.userId}" required="true" >
       <a4j:support event="onblur" reRender="decoration1" ajaxSingle="true"  bypassUpdates="true"/>
  </h:inputTextarea>
</s:decorate>
用户对象字段

 @NotNull(message="userIdFromAnno is required")
 getUserId() {
 }
当我将javax.faces.component.UIInput.REQUIRED={0}设置为messages.properties中的必填字段时,我得到userIdFromTemplate是必填字段。否则我会得到JSF默认消息验证错误:Value是必需的。我从来没有收到“useridfromano是必需的”消息

同样的代码也可以工作并拾取@Length的注释消息


有人能帮忙吗?

默认情况下,空HTTP请求参数作为空字符串提交。这与null不同,因此永远不会调用
@NotNull
。在JSF2.0上,可以使用上下文参数让JSF将提交的空值解释为null。在JSF1.2上,可以使用自定义字符串转换器让JSF将提交的空值转换为null。然而,在JSF1.1上,通过设计,将永远不会调用字符串的自定义转换器

最好使用Hibernate验证程序特定的注释,而不是

另见:

我试过你在另一篇文章中概述的转换器。当我在debug中运行时,我看到该值被设置为null,然后发生UIInput的验证@没有调用NotNull Hibernate验证程序。正如我在回答中所述,转换器在JSF 1.1上无法工作。使用
@NotBlank
 @NotNull(message="userIdFromAnno is required")
 getUserId() {
 }