SpringMVC3 AnnotationMethodHandlerAdapter与mvc:annotation-driven冲突的解决方案
1、问题
在使用SpringMVC3时,需要对response到页面的数据进行编码设置则需要自定义注解数据格式化类来对页面传过来的字符串进行格式化。
编码设置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <list> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
Formatter设置:
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="formatters"> <list> <bean class="com.grgbanking.it.common.formatter.TimestampFormatAnnotationFormatterFactory"/> </list> </property> </bean> <mvc:annotation-driven conversion-service="conversionService"/>
当两者按上面的设置好后,StringHttpMessageConverter不起作用了。
2、原因
<mvc:annotation-driven />的配置如下:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"><property name="order" value="1" /></bean><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"><property name="webBindingInitializer"><bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer"><property name="conversionService" ref="conversionService" /><property name="validator" ref="validator" /></bean></property></bean><bean id="conversionService" class="org.springframework.samples.petclinic.util.PetclinicConversionServiceFactory" /><bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
从上面的配置信息来看,<mvc:annotation-driven />相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean。
所以我们在上面配置的AnnotationMethodHandlerAdapter在<mvc:annotation-driven />后是不起作用的。<mvc:annotation-driven />包括了一个默认的AnnotationMethodHandlerAdapter功能。
3、解决
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="formatters"> <list> <bean class="com.grgbanking.it.common.formatter.TimestampFormatAnnotationFormatterFactory"/> </list> </property> </bean> <!-- 设置转换器 --><mvc:annotation-driven conversion-service="conversionService"><mvc:message-converters> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters></mvc:annotation-driven>
SpringMVC3 AnnotationMethodHandlerAdapter与mvc:annotation-driven冲突的解决方案相关推荐
- mac下使用git的冲突的解决方案
mac下使用git的冲突的解决方案 参考文章: (1)mac下使用git的冲突的解决方案 (2)https://www.cnblogs.com/codegeekgao/p/8301757.html 备 ...
- php中并发读写文件冲突的解决方案(文件锁应用示例)
php中并发读写文件冲突的解决方案(文件锁应用示例) 参考文章: (1)php中并发读写文件冲突的解决方案(文件锁应用示例) (2)https://www.cnblogs.com/wellsoho/p ...
- gitlab自带的Nginx与原Nginx冲突的解决方案
gitlab自带的Nginx与原Nginx冲突的解决方案 参考文章: (1)gitlab自带的Nginx与原Nginx冲突的解决方案 (2)https://www.cnblogs.com/lz0925 ...
- Eclipse SVN冲突详细解决方案
Eclipse SVN冲突详细解决方案 参考文章: (1)Eclipse SVN冲突详细解决方案 (2)https://www.cnblogs.com/jpfss/p/9007981.html 备忘一 ...
- asp.net core mvc上传大文件解决方案
asp.net core mvc上传大文件解决方案 参考文章: (1)asp.net core mvc上传大文件解决方案 (2)https://www.cnblogs.com/eggtwo/p/988 ...
- TextBoxWatermarkExtender扩展器与RequiredFieldValidator控件相冲突的解决方案
TextBoxWatermarkExtender扩展器与RequiredFieldValidator控件相冲突的解决方案 TextBoxWatermarkExtender扩展器与RequiredFie ...
- css3 动画与display:none冲突的解决方案
css3 动画与display:none冲突的解决方案 参考文章: (1)css3 动画与display:none冲突的解决方案 (2)https://www.cnblogs.com/yangzhou ...
- 包无法更新、相关性或冲突验证解决方案
包无法更新.相关性或冲突验证解决方案 背景 解决办法 总结: 背景 前段时间刚装了win11,最近打开图片的时候会有以下图片的提示框. 解决办法 以下是解决办法的步骤,希望能帮助到大家: 打开设置 : ...
- office2003和2007共存不冲突的解决方案
office2003和2007共存不冲突的解决方案 http://blog.163.com/zqg_zy/blog/static/3741221020081198516959/ 电脑技术 2008-1 ...
最新文章
- 汇编试验十五:安装新的int 9中断例程
- php mysql sql mode_Mysql之SQL Mode用法详解_MySQL
- 2018-2020年Gartner战略科技发展趋势一览!
- 游戏平台运维自动化扩展之故障自愈
- gopacket 在 windows 上面遇到的问题
- C++总结篇(4)内存管理
- Ubuntu 下修改 Could not reliably determine the serve
- python列表内元素求和_在Python中将列表的每个元素与另一个列表的每个元素相乘/相加/相除的有效方法...
- 李迟2021年11月知识总结
- 优化器:torch.optim
- HDU-2050-折线分割平面
- Python实现指定GitHub项目下载器【项目下载+GUI可视化界面操作】
- Zynga和Unity:独家奖励广告
- android其实很简单 -- roaster 以代码构建代码
- Verilog的结构化、数据流、行为级描述方式
- html标签验证步骤,html标签验证视频教程
- 小米3 SIM 卡无法识别
- 我常用的 15 个 Sketch Plugins
- 计算机如何在本地硬盘安装WinPE系统
- TFRecord存储维度(秩、rank、dimension)较多的数据以及创建Dataset的过程
热门文章
- Head First Design Pattern 读书笔记(4) 工厂模式
- 类似华容道一类搜索中,状态的Hash方法(转)
- 图示SaaS:走向平台化,会产生什么变化?
- (libgdx学习)TextInputListener
- 十个让你变成糟糕的程序员的行为
- studying and learning
- Python从零开始系列连载(32)——Python文件操作(下)
- 2018年山西省环境空气质量综合指数平均下降10.8%
- 开发一款即时通讯App,从这几步开始
- 《CCNP TSHOOT 300-135学习指南》——1.2节结构化故障检测与排除方法