gpt4 book ai didi

spring-mvc - 使用自定义消息进行 JSR-303 验证

转载 作者:行者123 更新时间:2023-12-04 22:07:56 26 4
gpt4 key购买 nike

我正在使用 Spring 3.0.5-RELEASE,带有 JSR-303 样式验证和 Hibernate 验证器 4.1.0-Final。我的模型类看起来像这样:

public class Model {
@Max(value=10,message="give a lower value")
Integer n;
}

这在带有绑定(bind)的 spring mvc servlet 中作为请求参数传递。所以请求看起来像这样:

http://localhost:8080/path?n=10

我想要的是能够在出现类型不匹配异常时自定义错误消息,例如

http://localhost:8080/path?n=somestring

这会导致我想替换一条很长的默认消息。

我已经尝试了网络上描述的几乎所有配置,但它们似乎都不起作用。有人知道正确的配置是什么吗?

具体来说,我的 mvc-servlet.xml 中需要什么?我的 messages.properties 文件中需要什么? message.properties 文件是否有一个神奇的名称,以便 hibernate-validator 可以找到它?

我在我的 mvc-servlet.xml 中使用了以下内容但没有成功:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basename="messages" />

还有一个位于 src/main/resources(以及 src/main/webapp/WEB-INF)的 messages.properties 文件......

我已经尝试了 messages.properties 中的各种组合,即使只是简单地覆盖了@NotEmpty 消息,即使这对我也不起作用。

最佳答案

错误信息需要进入一个名为 ValidationMessages.properties 的文件中.只需将它放在你的类路径中的某个地方,放在休眠 jar 之前。

例如,如果您有 ValidationMessages.properties包含以下属性的文件:

email_invalid_error_message=Sorry you entered an invalid email address
email_blank_error_message=Please enter an email address

然后你可以有一个具有以下约束的域对象:
public class DomainObject{ 
...
@Email(message = "{email_invalid_error_message}")
@NotNull(message = "{email_blank_error_essage}")
@Column(unique = true, nullable = false)
String primaryEmail;
...
}

关于spring-mvc - 使用自定义消息进行 JSR-303 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5738242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com