阅读Spring in action 实现书中实例时遇到的问题(三)之解决 JSR303校验获取ValidationMessage.properties错误信息文件的中文乱码问题
2018-11-26 10:10
991 查看
使用 ValidationMessage.properties配置错误信息,前端jsp页面回显错误提示信息时总是乱码,网上查了好久,最后还是下面的代码靠谱
在springmvc-config.xml中添加以下配置
[code]<!-- 加载属性文件 --> <mvc:annotation-driven validator="validator"></mvc:annotation-driven> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <property name="validationMessageSource" ref="messageSource" /> </bean> <!-- 校验错误信息配置文件 --> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <!-- 资源文件名 --> <property name="basenames"> <list> <value>classpath:ValidationMessage</value> </list> </property> <!-- 解决 ValidationMessage.properties错误信息文件的中文乱码问题 --> <property name="defaultEncoding" value="UTF-8" /> <!-- 对资源文件内容缓存时间,单位秒 --> <property name="cacheSeconds" value="120" /> </bean>
[code]<mvc:annotation-driven validator="validator"></mvc:annotation-driven> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"> <property name="providerClass" value="org.hibernate.validator.HibernateValidator" /> <property name="validationMessageSource" ref="messageSource" /> </bean>
上面这段代码特别划重点,必须要加!
下面给出基于javaconfig配置的webconfig代码
[code]//加载属性文件 @Override public Validator getValidator() { return validator(); } @Bean public MessageSource messageSource() { ReloadableResourceBundleMessageSource messageSource=new ReloadableResourceBundleMessageSource(); messageSource.setDefaultEncoding("utf-8"); messageSource.setBasename("classpath:ValidationMessage"); return messageSource; } //配置校验错误信息配置 @Bean public Validator validator() { LocalValidatorFactoryBean validator=new LocalValidatorFactoryBean(); validator.setValidationMessageSource(messageSource()); return validator; }
更新(原文:https://blog.csdn.net/stloven5/article/details/53312012 )
之前使用的是springmvc版本4.1.1.RELEASE,ReloadableResourceBundleMessageSource类直接继承于AbstractMessageSource。大概是在4.2以后的版本中,抽象出一个新类:AbstractResourceBasedMessageSource,defaultEncoding属性放到了抽象类中。
继承关系从
ReloadableResourceBundleMessageSource –> AbstractMessageSource
变成了ReloadableResourceBundleMessageSource –> AbstractResourceBasedMessageSource –> AbstractMessageSource
不过获取文件编码那一段代码逻辑没变。
相关文章推荐
- Java 简单解决springmvc获取properties文件里面中文内容出现论码问题(我遇到的问题是数据提交检验时返回的错误提示出现乱码)
- Java读写.properties文件实例,解决中文乱码问题
- springMVC 校验时,CustomValidationMessages.properties中的错误提示信息的中文乱码 问题
- Java读写.properties文件实例,解决中文乱码问题
- SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码
- spring使用@Value注解读取.properties文件时出现中文乱码问题的解决
- spring使用@Value标签读取.properties文件的中文乱码问题的解决
- 使用Qt Visual Studio Add-in 实现中文ts文件,解决中文乱码问题
- spring使用@Value标签读取*.properties文件的中文乱码问题的解决
- SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码
- SpringMVC+HibernateValidator,配置在properties文件中的错误信息回显前端页面出现中文乱码
- spring使用@Value标签读取.properties文件的中文乱码问题的解决
- Java读写.properties文件实例,解决中文乱码问题
- 今天遇到一个问题,获取properties配置文件中的中文时会出现乱码的情况
- 安装Properties Editor插件,解决XXX.properties文件中文乱码的问题
- 解决Java读取properties文件中文乱码的问题
- 关于BaiduPCS-Go不能用问题解决,报错【获取目录下的文件列表 遇到错误, 远端服务器返回错误】
- java获得*.properties配置文件的值,解决读取中文时乱码的问题:
- java实现解压(zip和rar文件)实例-解决中文乱码问题
- spring boot使用i18n时properties文件中文乱码问题的解决方法