美文网首页
SpringMVC绑定日期类型参数

SpringMVC绑定日期类型参数

作者: Scallion | 来源:发表于2021-08-16 17:52 被阅读0次
  • Controller层代码
@Controller
@RequestMapping("/demo")
public class DemoController {
    @RequestMapping("/handle02")
    public ModelAndView handle02(Date birthday) {
        //服务器时间
        Date date = new Date();
        //返回服务器时间到前端页面
        //封装了数据和页面信息的modelAndView
        ModelAndView modelAndView = new ModelAndView();
        //addObject 其实是向请求域中request.setAttribute("date",date)
        modelAndView.addObject("date", date);
        //视图信息(封装跳转的页面信息)
        modelAndView.setViewName("success");
        System.out.println("date: " + date);
        System.out.println("birthday" + birthday);
        return modelAndView;
    }
}
  • 页面访问HTTP报400错误


    HTTP 400
  • 控制台输出警告
[INFO] Initializing Servlet 'springmvc'
[INFO] Completed initialization in 677 ms
[WARNING] 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 '2021-08-16'; nested exception is java.lang.IllegalArgumentException]

从控制台的日志上可以看出,SpringMVC没有找到对应的类型转换器。

  • 自定义时间类型转换器
    实现Spring core包下的Converter接口,实现自定义转化器
import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Version 1.0
 */
public class DateConverter implements Converter<String, Date> {

    @Override
    public Date convert(String source) {
        // 完成字符串向日期的转换
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

        try {
            Date parse = simpleDateFormat.parse(source);
            return parse;
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return null;
    }
}

修改Spring MVC配置文件,加载自定义时间类型转换器

        <!--
        自动注册最合适的处理器映射器,处理器适配器(调用handler方法)
        -->
        <mvc:annotation-driven conversion-service="conversionServiceBean"/>
        <!--注册自定义类型转换器-->
        <bean id="conversionServiceBean" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
                <property name="converters">
                        <set>
                                <bean class="com.erxiao.edu.converter.DateConverter"></bean>
                        </set>
                </property>
        </bean>
  • 验证时间类型拦截器生效
    页面正常能够访问,没有错误信息


    HTTP 请求

    控制台日志正常输出,无异常信息

INFO] Initializing Servlet 'springmvc'
[INFO] Completed initialization in 648 ms
date: Mon Aug 16 17:49:01 CST 2021
birthdayMon Aug 16 00:00:00 CST 2021

相关文章

  • SpringMVC绑定日期类型参数

    Controller层代码 页面访问HTTP报400错误HTTP 400 控制台输出警告 从控制台的日志上可以看出...

  • springMVC(五)参数绑定

    参数绑定 默认支持的参数 SpringMVC 有支持的默认参数类型,我们直接在形参上给出这些默认类型的声明,就能直...

  • SpringMVC|参数绑定

    1. 什么是SpringMVC参数绑定 就是将URL中的的请求参数,进行类型转换(String或其他类型),将转换...

  • SpringMVC中日期格式的转换

    由于日期数据有很多种格式,所以springmvc没办法把字符串转换成日期类型。所以需要自定义参数绑定。前端控制器接...

  • SpringMVC知识点总结

    主要内容:1 SpringMVC总体框架图2 包装类型pojo参数绑定3 Springmvc校验4 数据回显5 异...

  • SpringMVC数据绑定

    SpringMVC数据绑定 基本类型 对于基本类型是用int型还是Integer型? 如果传入int型参数: 如果...

  • SpringMVC源码之参数解析绑定原理

    摘要 本文从源码层面简单讲解SpringMVC的参数绑定原理 SpringMVC参数绑定相关组件的初始化过程 在理...

  • SpringMVC源码之参数解析绑定原理

    摘要 本文从源码层面简单讲解SpringMVC的参数绑定原理 SpringMVC参数绑定相关组件的初始化过程 在理...

  • Spring MVC的各种参数绑定方式

    SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似): Controller代码: ...

  • SpringMVC参数绑定

    转自:http://blog.csdn.net/walkerjong/article/details/794610...

网友评论

      本文标题:SpringMVC绑定日期类型参数

      本文链接:https://www.haomeiwen.com/subject/dbfvbltx.html