Jsr303 Bean Validation错误消息没有表单和字段名称的前缀

时间:2012-01-26 13:58:59

标签: jsf-2 java-ee-6 bean-validation

我正在使用bean验证和extval验证。 我在类路径中创建了一个名为ValidationMessages.properties的属性文件。在这个文件中我自定义了defult消息,

例如: javax.validation.constraints.Size.message=this is a test messgae

当验证fieild时,我可以看到消息,但问题是我还会在消息之前看到字段和表单名称,如下所示:formName:fieldName this is a test
我想删除这个前缀。当它是一个jsf验证我知道我需要添加javax.faces.validator.BeanValidator.MESSAGE属性,但在这里它不起作用。

我需要做什么才能删除此前缀并仅查看邮件本身?

更新 如何覆盖两个 bean验证和jsf默认错误消息? (以及删除表单的前缀和邮件的归档名称) 我有ValidationMessages.properties的bean消息和messages.properties的jsf验证。我需要在config-xmlweb.xml文件中定义什么?我在哪里放置javax.faces.validator.BeanValidator.MESSAGE属性?

这对我来说非常重要,

任何帮助都会得到满足,

感谢提前。

2 个答案:

答案 0 :(得分:1)

您在哪个文件中指定了javax.faces.validator.BeanValidator.MESSAGE属性?

必须在JSF已知的资源包中定义该属性(例如,在faces-config.xml中注册的包),而不是在ValidationMessages.properties内。

如果您不想显示组件标签,则属性值必须为{0}javax.faces.validator.BeanValidator.MESSAGE={0}),但仅限于约束违规消息。更多信息可以在JSF 2规范的3.5.6.3节中找到。

答案 1 :(得分:0)

我想现在你已经解决了这个问题,如果不试试这个: - 在.xhtml页面中表示声明组件的位置,将lable属性设置为空白(“”)。这不会采用前缀值,只会显示错误消息。

对于输入文本字段,您需要进行一些验证,然后像这样使用

<h:inputText id="abc" value="My Textbox" label="">

试试这个,我认为你的问题可能会得到解决。