文章目录


主要目标:实现对请求参数的类型转换

这里举例将请求参数中的字符串参数转为Date类型的数据,convert的工作节点是请求参数传递到请求中之前一刻~

1.编写MyConvert类实现Convert接口

package com.hanz.convert;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;

public class MyConvert implements Converter<String, Date>{

public Date convert(String value) {
if (value!=null) {
// 写转换流程
System.out.println("正在转换~~~~");
Date date = null;
try {
// 转换有格式字符串为Date类型
date = new SimpleDateFormat("yyyy-MM-dd").parse(value);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
return null;
}

}

返回顶部


2.编写Controller层

package com.hanz.controller;

import java.util.Calendar;
import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/convert")
public class ConvertController {

@RequestMapping("/test1")
@ResponseBody
public String convert(@RequestParam Date date){
// 利用Calendar类
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
System.out.println("转换成功!"
+ "\n类型是:"+date
+ "\n年份是:"+calendar.get(Calendar.YEAR)
+ "\n月份是:"+calendar.get(Calendar.MONTH)
+ "\n天数是:"+calendar.get(Calendar.DATE)
);
return "success";
}

}

返回顶部


3.配置Convert转换器

<mvc:annotation-driven conversion-service="conversionService"/>
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!-- 配置类型转换器所在类 -->
<bean class="com.hanz.convert.MyConvert" />
</set>
</property>
</bean>

返回顶部


4.效果展示

  • 注意:月份从0开始
  • 当我们发送了请求:http://localhost:8080/jyspringdemo/convert/test1?date=2000-01-11 后,首先执行拦截器的preHandle()方法,处理后进入postHandle()方法,在此过程中利用Convert将String类型的请求参数转换为Date类型数据,然后将Date类型的数据发送进入controller的convert()方法中进行处理。

【Spring MVC】Convert 类型转换器_springmvc


返回顶部