SpringMVC 参数类型转换器

假设在文本框中输入日期,服务器进行接收

JSP:

<form action="${pageContext.request.contextPath}/convert">
    日期:<input type="text" name="date"/><br/>
            <input type="submit" value="提交"/>
</form>

controller:

@RequestMapping("/convert")
    public ModelAndView conver(Date date){
        ModelAndView modelAndView = new ModelAndView();
        System.out.println(new SimpleDateFormat("yyyy-MM-dd").format(date));
        modelAndView.setViewName("/second.jsp");
        return modelAndView;
    }

在SpringMVC中,默认能接收的Date类型为:yyyy/MM/dd   若用此之外的方式发送Date参数给服务器会报错

那么这时候可以手动创建一个关于接收Date类的转换器     假设所定义的接收时间的格式为:yyyy-MM-dd

步骤1:创建转换器

new 一个class 实现Convert接口并实现其方法

/*
* String :  传进来的数据类型
* Date:  转换后的数据类型
* */
public class DateConvert implements Converter<String, Date> {
    @Override
    public Date convert(String s) {

        if(s != null){
            //定义类型       定义只有输入的是  "yyyy-MM-dd"  这种类型 才会转型
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            try {
                //parse方法用于将字符串类型的日期/时间解析为Date类型
                return simpleDateFormat.parse(s);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}

步骤2:在springmvc的核心配置文件中配置转换器     并写上注解驱动

<!--配置转换器-->
    <bean id="dateConvert" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
        <property name="converters">
            <list>
                <bean class="com.itlike.web.convert.DateConvert"/>
            </list>
        </property>
    </bean>

    <!--注解驱动-->
    <mvc:annotation-driven conversion-service="dateConvert"/>

这样,服务器接收Date类型的参数格式变成了  yyyy-MM-dd

猜你喜欢

转载自blog.csdn.net/weixin_43014205/article/details/85324116
今日推荐