日期格式转换
springMVC默认不支持页面上的日期字符串到后台的Date的转换
有两种转换方式
第一种使用注解
Person
private int id;
private String username;
private String password;
private String city;
private Birthday birthday;
@DateTimeFormat ( pattern = "yyyy-MM-dd" )
private Date birthday2;
ParameterController
@RequestMapping ( "add.action" )
public ModelAndView test05 ( Person person) {
System. out. println ( person. getUsername ( ) ) ;
System. out. println ( person. getPassword ( ) ) ;
System. out. println ( person. getCity ( ) ) ;
System. out. println ( person. getBirthday ( ) . getYear ( ) ) ;
System. out. println ( person. getBirthday ( ) . getMonth ( ) ) ;
System. out. println ( person. getBirthday ( ) . getDay ( ) ) ;
System. out. println ( person. getBirthday2 ( ) ) ;
ModelAndView mv = new ModelAndView ( ) ;
mv. setViewName ( "main" ) ;
return mv;
}
addPersonUI.jsp
出生日期:< input type = " date" name = " birthday2" > < br/>
二自己编写转换类,配置到springMVC
编写自定义转换器实现Converter重写方法,进行转换
public class DateTimeFormatConvert implements Converter < String, Date> {
public Date convert ( String s) {
System. out. println ( "convert " + s) ;
SimpleDateFormat sdf = new SimpleDateFormat ( "yyyy-MM-dd" ) ;
Date date = null;
try {
date = sdf. parse ( s) ;
} catch ( ParseException e) {
e. printStackTrace ( ) ;
}
return date;
}
}
springmvc.xml中配置转换工厂,将转换器设置到converters集合中
< bean id = " formattingConversionService" class = " org.springframework.format.support.FormattingConversionServiceFactoryBean" >
< property name = " converters" >
< set>
< bean id = " dateTimeFormatConverter" class = " com.wzx.util.DateTimeFormatConvert" > </ bean>
</ set>
</ property>
</ bean>
将转换工厂对象挂载到处理器适配器上(挂载到注解驱动)
< mvc: annotation-driven conversion-service = " formattingConversionService" />
日期格式化标签
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
< fmt: formatDate value = " ${item.birthday2}" pattern = " yyyy年MM月dd日" />