当前位置:   article > 正文

SpringMVC自定义日期转换器不起作用,报400错误,Failed to convert value of type xxx to required type xxx_resolved [org.springframework.web.method.annotatio

resolved [org.springframework.web.method.annotation.methodargumenttypemismat

错误描述

控制台:

WARN efaultHandlerExceptionResolver - Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type ‘java.lang.String’ to required type ‘java.util.Date’; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.util.Date] for value ‘2020-10-01’; nested exception is java.lang.IllegalArgumentException]

页面(400错误):

在这里插入图片描述

错误原因+解决办法

错误代码(springmvc.xml)

	<!-- 把转换器工厂放入到注解驱动,转换器才会生效 -->
    <mvc:annotation-driven conversion-service="conversionServiceFactory" />

    <!--  开启注解驱动,开启SpringMVC的注解的支持 @RequestMapping @RequestBody @ResponseBody这些注解需要使用 -->
    <mvc:annotation-driven/>
  • 1
  • 2
  • 3
  • 4
  • 5

错误原因
转换器工厂加入到注解驱动<mvc:annotation-driven conversion-service="conversionServiceFactory" />写在了开启注解驱动<mvc:annotation-driven/>的前面,注解驱动都没有开启,怎么将转换器工厂放入到注解驱动呢?

解决办法:
将开启注解驱动代码提前<mvc:annotation-driven/>,放在转换器工厂的前面,就可以解决问题了。

springmvc模板:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">

    <!--springmvc是web层(Controller处理请求)  UserController  @Controller -->
    <!--1.扫描Controller所在包-->
    <context:component-scan base-package="com.xgf.web"/>

    <!--2. 配置的视图解析器对象,success  路径/WEB-INF/pages/success.jsp -->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--3. 配置文件 - 过滤静态资源  前面的前端控制器拦截所有,静态css、js这些也都拦截
            配置使.js .css img这些静态文件不被拦截,保证静态文件都不拦截
             用过mvc标签进行放行,这些目录下文件都不拦截      -->
    <mvc:resources location="/css/" mapping="/css/**" />
    <mvc:resources location="/images/" mapping="/images/**" />
    <mvc:resources location="/js/" mapping="/js/**" />
    <mvc:resources location="/fonts/" mapping="/fonts/**" />

    <!-- 4. 开启注解驱动,开启SpringMVC的注解的支持 @RequestMapping @RequestBody @ResponseBody这些注解需要使用 -->
    <mvc:annotation-driven/>

    <!-- 5. 配置类型转换器  -->
    <!-- 创建类型转换器对象 -->
    <bean id="stringToDateConverter" class="com.xgf.web.converter.StringToDateConverter"/>
    <!-- 把转换器对象放入SpringMVC转换器工厂中 -->
    <bean id="conversionServiceFactory" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <!-- 引入日期转换器对象(上面创建的) -->
                <ref bean="stringToDateConverter"/>
                <!-- 或者直接将转换器类写到这里面 -->
                <!--<bean id="stringToDateConverter" class="com.xgf.web.converter.StringToDateConverter"/>-->
            </set>
        </property>
    </bean>

    <!--6. 把转换器工厂放入到注解驱动,转换器才会生效 -->
    <mvc:annotation-driven conversion-service="conversionServiceFactory" />
    
</beans>

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/229782
推荐阅读
相关标签
  

闽ICP备14008679号