Java 使用自定义消息验证异常行为

Java 使用自定义消息验证异常行为,java,playframework-2.0,ebean,Java,Playframework 2.0,Ebean,我有一些简单的验证,比如: @Column(length=6) @Pattern(regexp = "[0-9]{2}( |-)?[0-9]{3}", message = Errors.kod_pocztowy) private String kod_pocztowy; 但它会返回奇怪的错误: failed: java.lang.NoClassDefFoundError: javax/el/ELContext [error] at org.hibernate.validator.mes

我有一些简单的验证,比如:

@Column(length=6)
@Pattern(regexp = "[0-9]{2}( |-)?[0-9]{3}", message = Errors.kod_pocztowy)
private String kod_pocztowy;
但它会返回奇怪的错误:

failed: java.lang.NoClassDefFoundError: javax/el/ELContext
[error]     at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateExpression(ResourceBundleMessageInterpolator.java:227)
[error]     at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolateMessage(ResourceBundleMessageInterpolator.java:187)
[error]     at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.interpolate(ResourceBundleMessageInterpolator.java:115)
[error]     at org.hibernate.validator.internal.engine.ValidationContext.interpolate(ValidationContext.java:370)
[error]     at org.hibernate.validator.internal.engine.ValidationContext.createConstraintViolation(ValidationContext.java:284)
[error]     at org.hibernate.validator.internal.engine.ValidationContext.createConstraintViolations(ValidationContext.java:246)
[error]     at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateSingleConstraint(ConstraintTree.java:289)
[error]     at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:133)
[error]     at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:91)
[error]     at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:85)
[error]     at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:478)
[error]     at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:424)
[error]     at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:388)
[error]     at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:340)
[error]     at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:158)
当我将消息属性更改为文本时,如:

@Column(length=6)
@Pattern(regexp = "[0-9]{2}( |-)?[0-9]{3}", message = "Now its ok")
private String kod_pocztowy;

然后一切似乎都好了。有什么问题吗?有人能给我解释一下吗?

好的,我自己找到的。使用像{}这样的字符会导致Ebean从类中加载消息,并且该消息与该类相关。

好的,我自己找到了它。使用像{}这样的字符会导致Ebean从类中加载消息,并且此消息与该类相关。您应该使用解决方案创建此问题的答案,并将其标记为已接受。