假设在文本框中输入日期,服务器进行接收
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