Jsf 2 在JSF中带注释的验证器生成的错误消息中包含字段名

Jsf 2 在JSF中带注释的验证器生成的错误消息中包含字段名,jsf-2,bean-validation,Jsf 2,Bean Validation,在我的Java代码中使用bean验证非常方便,比如javax.validation.constraints.Size,例如: @Size(min=1,max=30)protected String custName; <f:validateLength minimum="1" maximum="30" /> 而不是嵌入在.xhtml页面中的更冗长的等价物,例如: @Size(min=1,max=30)protected String custName; <f:valida

在我的Java代码中使用bean验证非常方便,比如
javax.validation.constraints.Size
,例如:

@Size(min=1,max=30)protected String custName;
<f:validateLength minimum="1" maximum="30" />
而不是嵌入在.xhtml页面中的更冗长的等价物,例如:

@Size(min=1,max=30)protected String custName;
<f:validateLength minimum="1" maximum="30" />

但是没有值被{0}替换。结果是,虽然带注释的验证器可以很好地用于我可以为每个表单字段包含一个单独的
的简单页面,但对于我需要在页面顶部对消息进行分组的更复杂的表单(例如,选项卡式表单),它们却不能很好地工作。是否有解决方法,或者是使用JSF验证器的唯一合理选择?

视图端输入组件的
标签
属性表示
{0}
,未指定时默认为客户端ID

例如


在这个特定的条目中,
{1}
将是JSF输入组件的标签,
{0}
将是bean验证器的消息。

我确实指定了label属性-仍然没有通过它获取字段名。(我使用的是PrimeFaces 3.0.1 inputText,而不是h:inputText,但这似乎并不重要)。听起来不错,我甚至还找到了其他两个相同解决方案的参考(和),但对我来说毫无乐趣。
javax.faces.validator.BeanValidator.MESSAGE = {1} {0}