自定义类型转换器 实现Converter<String, T> ;字符串类型转换为T类型
package top.lolcl.myblog.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
/**
* 自定义类型转换器
* @author sanch
*
*/
public class MyDateConverter implements Converter<String, Date>{
@Override
public Date convert(String source) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
return format.parse(source);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
配置spring-mvc.xml
<!-- 启动自动扫描 -->
<context:component-scan base-package="top.lolcl.myblog" />
<!-- 注册类型转换器 -->
<bean id="myDateConverter" class="top.lolcl.myblog.controller.MyDateConverter"></bean>
<!-- 注册转换服务对象 -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters" ref="myDateConverter"></property>
</bean>
<!-- 注册MVC注解驱动 -->
<mvc:annotation-driven conversion-service="conversionService" />
测试
创建user实体类 / usermapper.java / usermapper.xml
创建controller层
/**
* 修改用户
* 返回JSON
* @param uid
* @return
* @throws Exception
*
*/
@Scope(value="singleton")
@ResponseBody
@RequestMapping("/update")
public String update(@Param("uid") String uid,Model model)throws Exception{
logger.info("update-----------------------------------------------");
JSONObject json = new JSONObject();
User user = null;
if(uid != null) {
user = userservice.selectByPrimaryKey(uid);
model.addAttribute("model1", user);
json.put("data", true);
json.put("model", user);
}else {
json.put("data", false);
}
return json.toString();
}
打断点---》可以看到进行修改时--->先进入自定义的转换器,将Date类型数据进行自动转换,然后再进入update方法,实现了类型的自动转换过程