- 浏览: 466124 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
a1439226817:
能不能发下源码1439226817@qq.com
ExtJsCRUD组件实现 -
w923690968:
[list][*]引用[u][/u][/list]
[JS]Drag And Drop -
zhumingyuan:
您好!用的的是3.2.3版本,按照您的方法配置了一下,但是还是 ...
spring vmc3.1.1 下,通过AnnotationMethodHandlerAdapter配置webBindingInitializer失效解决方案 -
sumo084:
我把xDarkness-MultClrBubble-1.0.j ...
JAVA实现类泡泡屏保效果 -
sumo084:
求源码,楼主好人,630483738@qq.com,谢谢
JAVA实现类泡泡屏保效果
问题:
spring vmc3.1.1 下,通过AnnotationMethodHandlerAdapter配置webBindingInitializer失效:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="webBindingInitializer"> <bean class="com.xxx.ark.core.web.CustomerBindingInitializer" /> </property> <property name="messageConverters"> <list> <ref bean="jacksonMessageConverter"/> </list> </property> </bean> <mvc:annotation-driven > <mvc:argument-resolvers> <bean class="com.xxx.ark.core.web.FormBeanArgumentResolver" /> </mvc:argument-resolvers> </mvc:annotation-driven>
原因:
annotation-driven缺省注册类的改变
Spring 3.0.x中使用了annotation-driven后,缺省使用DefaultAnnotationHandlerMapping 来注册handler method和request的mapping关系。 AnnotationMethodHandlerAdapter来在实际调用handlermethod前对其参数进行处理。
在spring mvc 3.1中,对应变更为
DefaultAnnotationHandlerMapping -> RequestMappingHandlerMapping
AnnotationMethodHandlerAdapter -> RequestMappingHandlerAdapter
AnnotationMethodHandlerExceptionResolver -> ExceptionHandlerExceptionResolver
以上都在使用了annotation-driven后自动注册。
而且对应分别提供了AbstractHandlerMethodMapping , AbstractHandlerMethodAdapter和 AbstractHandlerMethodExceptionResolver以便于让用户更方便的实现自定义的实现类。
<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。
spring mvc <mvc:annotation-driven />会自动启动Spring MVC的注解功能,但实际它做了哪些工作呢?
<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" />
从上面的配置可以看出,我的配置应该是被sping的配置覆盖了,<mvc:annotation-driven />配置中已经包含了webBindingInitializer的配置,看来使用<mvc:annotation-driven />后与原来的配置出现了重复,这种情况下不管<mvc:annotation-driven />放在上面还是放在下面都会出现问题。
解决方法:
使用conversion-service来注册自定义的converter
DataBinder实现了PropertyEditorRegistry, TypeConverter这两个interface,而在spring mvc实际处理时,返回值都是return binder.convertIfNecessary(见HandlerMethodInvoker中的具体处理逻辑)。因此可以使用customer conversionService来实现自定义的类型转换。
从<mvc:annotation-driven />中配置可以看出,AnnotationMethodHandlerAdapter已经配置了webBindingInitializer,我们可以通过设置其属性conversionService来实现自定义类型转换。
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <list> <bean class="com.xxx.ark.core.web.DateConverter" /> </list> </property> </bean>
需要修改spring service context xml配置文件中的annotation-driven,增加属性conversion-service指向新增的conversionService bean。
<mvc:annotation-driven conversion-service="conversionService" />
实际自定义的converter如下。
public class DateConverter implements Converter<String, Date> { @Override public Date convert(String source) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); try { return dateFormat.parse(source); } catch (ParseException e) { e.printStackTrace(); } return null; }
评论
发现直接配置webBindingInitializer确实无效
但采用你所说的自定义方式后 依然报错
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'conversionService' defined in ServletContext resource [/WEB-INF/spring-mvc.xml]: Cannot create inner bean 'com.baijun.open.util.DateConverter#9b87f6' of type [com.baijun.open.util.DateConverter] while setting bean property 'converters'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.baijun.open.util.DateConverter] for bean with name 'com.baijun.open.util.DateConverter#9b87f6' defined in ServletContext resource [/WEB-INF/spring-mvc.xml]; nested exception is java.lang.ClassNotFoundException: com.baijun.open.util.DateConverter
发表评论
-
position:relative元素滚动条无效
2012-09-14 15:44 5277原文地址:http://www.abigdreamer.co ... -
Hudson dryRun jobs break after upgrade from 2.2.0 to 2.2.1
2012-07-04 16:47 2320I just upgraded our Hudson f ... -
myeclipse 中更改svn用户名和密码(win7)
2012-03-08 13:36 1924由于在svn的界面中并没有为我们提供直接更换用户名密码的地方, ... -
Project configuration is not up-to-date with pom.xml
2012-03-02 16:38 1369导入maven工程后,出现如下错误: Descr ... -
使用注解时 打包jar错误
2014-12-17 15:59 810但在使用spring的时候,里面使用了注解,发生了 ... -
Skin for * cannot be found
2011-04-28 17:08 2426What caused the error?I was ... -
java.util.ConcurrentModificationException 解决办法
2010-12-04 13:16 1347今天做一个网络抓取工 ... -
引入JS文件编码问题
2010-11-16 09:33 1911自己写了一个JS RIA框架,由于文件较多,于是写了文件合并程 ... -
JAVA读取大文件时报java.lang.OutOfMemoryError: Java heap space
2010-11-11 11:10 2667文件读取过程中并没有文件流没正常关闭,后来发现是我的JVM内 ... -
form表单中只有一个文本框时回车提交表单问题
2010-07-02 11:30 2009今天写项目时,表单里只有一个文本框和若干个文本域。可是在文本框 ... -
Caused by: java.net.SocketException: Connection reset by peer: socket write erro
2010-05-27 16:37 11068今天做了个过滤图片的servlet,功能是用来匹配自定义的文件 ... -
getOutputStream() has already been called for this response
2010-05-05 09:53 1359java.lang.IllegalStateException ... -
Redhat5 Weblogic9.2下部署Java程序中文乱码问题研究
2010-01-11 16:07 2791我在将应用程序部署到R ... -
javac 目标版本 1.3 与默认的源版本 1.5 冲突
2009-12-15 11:13 3085开发JSP,使用Eclipse(JDK1.5),部署WEB应用 ... -
在Websphere上修改项目的web.xml中的配置后不起作用
2009-12-03 17:24 4654往往在我们把一个java项目部署到了websphere上的时候 ... -
IE提示“存储空间不足,无法完成此操作”的错误(彻底解决包括产生原因)
2009-11-12 11:19 54541、打开IE的“关于” ... -
IOException while loading persisted sessions: java.io.EOFException
2009-11-05 17:20 1016tomcat在启动时出现如下异常问题: 严重 ... -
EXP-00003: 未找到段xxx的存储定义
2009-10-24 17:35 1769导出的时候,我们有时候会遇到一种错误 EXP-00003: ... -
Oracle IMP数据时报20001错误
2009-10-24 15:27 6414MP-00017: 由于 ORACLE 的 20001 错误, ... -
myeclipse控制台不显示tomcat信息
2009-09-01 09:52 4942在myeclipse下启动tomcat服务器 控制台不显示任何 ...
相关推荐
简易版spring、springmvc spring测试入口 com.xiaozhou.spring.Test springvmc 测试入口 com.xiaozhou.controller.TestController
4. 应用部署完成后,你可以通过`vmc apps`命令查看已部署的应用,然后通过`vmc logs <app-name>`查看应用的日志,确保应用正常运行。 以上就是VMC的安装、配置和简单应用部署的基本流程。随着对VMC的深入使用,你还...
Vmc Slider是一款基于jQuery的...Vmc Slider是一款强大且灵活的焦点图解决方案,其丰富的过滤效果和自定义选项为网站增添了不少亮点。结合实际项目需求,合理运用这款插件,能够大大提高网站的视觉吸引力和用户参与度。
98FE.vmc 虚拟机配置文件,这个文件可以起到模拟一台计算机的作用
在网页设计中,幻灯片组件经常被用来展示产品、服务或者吸引用户的注意力,而Vmc Slider正是这样一款强大的解决方案。 首先,Vmc Slider的一大特色在于其内置的20种过渡特效。这些特效为用户提供了多样化的选择,...
通过这款名为"VirtualMotionCapture"的vmc软件,我们可以高效地进行运动捕捉工作,从而创造出更为逼真的虚拟角色和场景。 VMC技术的核心在于其能够精确地追踪和记录人体或物体的运动,通常通过红外摄像头或激光...
Java VMC(Virtual Machine Context)通常是指在Java虚拟机中运行的应用程序上下文,它涉及到的是如何在Java环境中管理和执行应用程序...通过详细研究和运行"mvcDemo"项目,你将能更好地掌握Java VMC环境下的应用开发。
【VMC750E加工中心基本操作】是关于一种特定型号的加工中心——VMC750E的使用教程,主要涵盖了设备的开机、返回参考点、坐标显示方式、手动操作以及加工程序的管理与传输等核心内容。 1. **开机操作**:首先打开...
VMware Tanzu Mission Control 是一款针对多集群和应用管理的解决方案,旨在提供集中式的 Kubernetes 管理能力,帮助企业在多云环境中实现高效、稳定的应用基础设施。这个平台涵盖了现代应用程序的构建、运行、管理...
对于需要处理大量数据和执行复杂任务的高端应用,这种集成的管理解决方案至关重要。通过深入理解和熟练掌握ChMC和VMC的实现方法,工程师们能够更好地设计和优化VPX平台上的嵌入式系统,以满足不断增长的高性能计算...
Vmc Slider是一款高效且灵活的解决方案,适用于创建具有专业外观的滑块组件。 Vmc Slider的核心特性包括: 1. **过渡效果**:这个插件的一大亮点在于它提供了多种过渡效果,如淡入淡出、滑动、缩放、旋转等。这些...
Buck STM32源代码 Syn-Buck VMC v1.1Buck STM32源代码 Syn-Buck VMC v1.1Buck STM32源代码 Syn-Buck VMC v1.1Buck STM32源代码 Syn-Buck VMC v1.1Buck STM32源代码 Syn-Buck VMC v1.1Buck STM32源代码 Syn-Buck VMC ...
VMC算法是一种先进的控制策略,它通过建立虚拟模型来预测机器人的动态行为,并以此为基础对实际系统进行精确控制。 VMC算法的核心思想是首先创建一个数学模型,这个模型能够描述四足机器人的运动学和动力学特性。在...
VMC850 TC500 是一款针对数控机床,特别是立式加工中心的设备型号。这个调试包是为操作和维护该型号机床提供的重要参考资料,涵盖了机床的调试方法、参数设置、故障诊断以及日常维护等多个方面。下面将对这个调试包...
新一代企业云解决方案旨在加速数据中心的转型,以...总的来说,新一代企业云解决方案通过创新的技术和模式,帮助企业在数据中心转型中加速,提升IT服务的灵活性、安全性和整体效率,为企业数字化转型奠定坚实的基础。
《VMC_mdb_vending_纸币器_自动售货机——深入理解自动售货机与纸币器通讯机制》 自动售货机是日常生活中常见的便利设施,它集成了电子技术、机械工程和信息技术等多种领域的知识。在本文中,我们将深入探讨"VMC....
W98FEOEM.vmc W98FEOEM.vmc W98FEOEM.vmc