Java JSR 303验证消息覆盖@Id-can';找不到包异常

Java JSR 303验证消息覆盖@Id-can';找不到包异常,java,jsf,bean-validation,Java,Jsf,Bean Validation,我正在尝试为bean验证消息创建一个customizemessages.properties文件。 我将Messages.properties文件添加到资源包中,并将resources.Messages添加到我的faces config.xml文件中 我正在验证一个具有主键字段和@Id注释(javax.persistence.Id)的实体 当我重写像javax.faces.converter.BigDecimalConverter.DECIMAL这样的消息时,它工作得很好,但是当这个输入为空时,

我正在尝试为bean验证消息创建一个customizemessages.properties文件。 我将
Messages.properties
文件添加到资源包中,并将
resources.Messages
添加到我的
faces config.xml
文件中

我正在验证一个具有主键字段和
@Id
注释(javax.persistence.Id)的实体

当我重写像
javax.faces.converter.BigDecimalConverter.DECIMAL这样的消息时,它工作得很好,但是当这个输入为空时,我的问题得到了异常消息:
找不到基本名称资源的包。消息,区域设置en\u US

我还有一条关于这种验证的消息——在属性文件中是
javax.faces.component.UIInput.REQUIRED
(所以我没有遗漏正确的消息文本)

因此,我尝试将locale config:

en_US
,并在resorce包中添加了另一个名为Messages_en_US.properties的属性文件, 但我还是有例外

有什么问题吗?我错过什么了吗?如何解决这个问题? 这个问题是由@Id注释引起的吗?我能通过吗? 我希望能够看到我的自定义消息。 我尝试了我能想到的每一件事,但都没有成功,请帮忙


提前感谢。

只要将这些属性文件以与WEB-INF资源文件夹相同的结构放在源文件夹中,java类就会从java资源文件夹中获得引用


试试这个,我也遇到了同样的问题,它对我有效。

首先,您没有使用Bean验证(JSR303)。您正在使用JSF内置验证。其次,@Id与验证无关。我不使用JSF验证,但我认为
javax.faces.component.UIInput.REQUIRED
消息仅在facelet中REQUIRED=“true”的情况下显示。您确定您的包位于/WEB-INF/classes/resources/folder中吗?您确定可以正确覆盖
javax.faces.converter.BigDecimalConverter.DECIMAL吗?@Alf:为什么不使用bean验证?我的jsf页面中没有验证程序的标签。据我所知,
@Size
@NotNull
@Max
等等。。是bean验证,而不是jsf。我使用的唯一jsf验证器是required=true,我尝试在它不起作用后添加它,所以我没有真正使用它,只是测试了它。是的,我确信这两件事,我可以看到路径中的文件,我可以看到
javax.faces.converter.BigDecimalConverter.DECIMAL
错误消息,有什么想法吗?您的设置与Bean验证无关。如您所见,
javax.faces.converter.BigDecimalConverter.DECIMAL
是一个jsf错误。如果要覆盖bean验证消息,必须在WEB-If/classes文件夹中添加ValidationMessages_xx.properties。无论如何,我不明白为什么在某些情况下jsf会将消息包本地化,而在其他情况下则不会。将所有内容放在src文件夹中很简单,但并不建议。每个应用程序都有一个结构和更好的组织方式。与其复制src上的所有内容,不如尝试在classath上获取所需的内容。