首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用messages.properties的情况下获得Spring mvc验证消息?

如何在不使用messages.properties的情况下获得Spring mvc验证消息?
EN

Stack Overflow用户
提问于 2012-10-25 23:17:32
回答 2查看 1.3K关注 0票数 0

我有一个带有Controller、Model、Service和Validation类的Spring mvc应用程序。一切都很好。在开发当前拥有的内容时,我将验证消息存储在一个messages.properties文件-which中,我在configuration类中注册了该文件,如下所示:

代码语言:javascript
复制
@Bean
public MessageSource messageSource() {

    final ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
    messageSource.setBasename("[package name]/messages/messages");

    return messageSource;
}

在Validator中,如果用户没有回答这样的字段,我会添加一条验证消息:

代码语言:javascript
复制
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "age", "required", new Object[] {"Age"});

在messages.properties文件中(上面的'age‘是模型对象的名称,'required’是用于在messages.properties文件中检索消息的键):

代码语言:javascript
复制
required = {0} is required.

好了,再说一遍,-this一切都很好。但我想要做的是将消息外部化到数据库中(基本上,这些消息是所有应用程序都使用的企业消息)。

我的问题是,我能让-how使用数据库而不是messages.properties吗?或者我确实使用了messages.properties,只存储消息的id (数据库键),而不是消息本身?

我有几个想法,-but不知道如何做任何一个。我“认为”Spring-form标签库最终会执行获取实际消息的工作。也许我可以截获那个电话?或者可能以某种方式将messageSource更改为其他内容,而不是定义messages.properties文件。

不管怎样,有没有人有什么想法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 07:39:58

不使用ResourceBundleMessageSource,而是使用自定义MessageSource实现,它返回到DB中。不幸的是,Spring本身没有这样的实现,就像在jira问题中描述的那样:https://jira.springsource.org/browse/SPR-364

但是实现jira接口很简单,您甚至可以看到一个附加到MessageSource问题上的示例实现:https://jira.springsource.org/secure/attachment/10261/JdbcMessageSource.java

票数 0
EN

Stack Overflow用户

发布于 2018-04-11 18:25:44

您可以尝试使用Errors.rejectValue(String field, String errorCode, String defaultMessage)方法。我也有同样的问题。在我的例子中,我使用了...errors.rejectValue("firstName", "error.firstName", "plz enter ur first name!!.");

理想情况下,这应该在无法从消息源中找到错误代码的情况下使用defaultMessage

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13071801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档