SpringMVC中的日期处理
- 日期的提交处理
A. 单个日期的处理
要使用注解@DateTimeFormat
,此注解必须搭配上springmvc.xml
中的<mvc:annotation-driven>
的标签
弊端:对于每一个日期类都要进行注解,太麻烦!!!
页面:
<form action="${pageContext.request.contextPath}/Date1.action">
日期:<input type="date" name="date"><br>
<input type="submit" value="提交">
</form>
springmvc.xml
<mvc:annotation-driven/>
注意:这里的方法的参数名称要和前端请求中的name中的名字一样,才能注入,否则注入为空null
, 如果使用格式刷则会报500错误,原因是空指针异常
@Controller
public class MyDateAction {
// 这里的注解只是将日期注入到对应的类型中,并没有对日期格式做修改
// 需要在这里使用日期格式刷
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@RequestMapping("/Date1.action")
public String date(@DateTimeFormat(pattern = "yyyy-MM-dd") // 需要添加注解驱动
Date date){
String s = sdf.format(date);
System.out.println(s);
return "show";
}
}
B. 类中全局日期处理
// 注册一个全局的日期处理注解 这种方式可以不用注册注解驱动
@InitBinder
public void initBinder(WebDataBinder dataBinder){
// 需要的类型 // 自定义日期类型 日期类刷子 允许为空
dataBinder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
}
@RequestMapping("/Date1.action")
public String date(Date date) {
// 仍然需要使用格式刷
System.out.println(date);
System.out.println(sdf.format(date));
return "show";
}
- 日期的显示处理(前端处理)
在页面上显示好看的日期,必须使用JSTL
步骤:1.添加依赖jstl,2.在也买你上导入标签库,3.使用标签显示数据
如果是单个日期对象,直接转为好看的格式化字符串进行显示。
如果是list
中的实体类对象的成员变量是日期类型,则必须使用jstl进行显示