<%@ page contentType=34;text/html;charset=UTF-8" language="java" %><html><head> <title>index.jsp</title></head><body><h2>单个日期处理</h2><form action="${pageContext.request.contextPath}/date.action"> 日期:<input type="date" name="date"> <input type="submit" value="提交"></form></body></html>
webapp/admin/date.jsp:要求的相应页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>date.jsp</title></head><body><h2>date......page......</h2></body></html>
在springmvc.xml配置文件中新增表明驱动:解析用来进行日期注入的表明
<!-- 添加表明驱动--> <mvn:annotation-driven/>
新增SpringMVC掌握器:DateAction,个中action方法的Date类型参数用@DateTimeFormat(pattern = "yyyy-MM-dd")标识表明后面的pattern参数指定了前端传来的日期(实际上以字符串的形式通报到后端),以什么样的格式注入到date参数中但是在输出date变量时如果要更加直不雅观的显示日期格式,必须其余再用SimpleDateFormat修正日期格式以是"yyyy-MM-dd"会涌现两次
package com.example.controller;import org.springframework.format.annotation.DateTimeFormat;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import java.text.SimpleDateFormat;import java.util.Date;@Controllerpublic class DateAction { @RequestMapping("/date") public String data( @DateTimeFormat(pattern = "yyyy-MM-dd") Date date){ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(sf.format(date)); return "date"; }}
支配并启动tomcat测试网站首页(left),相应页面(mild),掌握台输出(right)见下:可见通过表明和注册表明驱动可以实现日期类型变量的注入
package com.example.controller;import org.springframework.beans.propertyeditors.CustomDateEditor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.InitBinder;import org.springframework.web.bind.annotation.RequestMapping;import java.text.SimpleDateFormat;import java.util.Date;@Controllerpublic class DateAction { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); //注册全局日期处理表明 @InitBinder public void initBinder(WebDataBinder webDataBinder){ //注册自定义的编辑器,对日期类型进行自定义配置,指定日期注入时的格式,并许可日期为空 webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(sf, true)); } //每个方法上不用添加日期注入的表明,只要在类中注册全局日期处理表明即可 @RequestMapping("/date") public String data(Date date){ System.out.println(sf.format(date)); return "date"; }}
支配并启动tomcat测试网站首页(left),相应页面(mild),掌握台输出(right)见下:可见通过注册全局日期处理表明,也可以完成日期类型变量的注入,并简化挨个添加单个表明的繁琐操作
<!-- 引入jstl标签库--> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
webapp/index.jsp:网站的首页,并用于发送要求,从后端要求用户信息
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>index.jsp</title></head><body><a href="${pageContext.request.contextPath}/date.action">显示用户信息列表,包含日期类型的属性</a></body></html>
webapp/admin/date.jsp:要求的相应页面,并将要求来的用户信息列表展示在该页面上
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%-- 导入jstl核心标签库--%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%-- 导入jstl格式化标签库--%><%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><html><head> <title>date.jsp</title></head><body><h2>显示用户信息列表,包含日期类型的属性</h2><table width="800px" border="1"> <tr> <th>用户名</th> <th>生日</th> </tr> <c:forEach items="${list}" var="user"> <tr> <td>${user.name}</td> <!-- 不该用jstl格式化标签库来进行日期格式化处理 <td>${user.birthday}</td> --> <!-- 利用jstl格式化标签库来进行日期格式化处理 --> <td> <fmt:formatDate value="${user.birthday}" pattern="yyyy-MM-dd"/></td> </tr> </c:forEach></table></body></html>
DateAction掌握器
package com.example.controller;import com.example.pojo.User;import org.springframework.beans.propertyeditors.CustomDateEditor;import org.springframework.stereotype.Controller;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.InitBinder;import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;@Controllerpublic class DateAction { SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd"); //注册全局日期处理表明 @InitBinder public void initBinder(WebDataBinder webDataBinder){ //注册自定义的编辑器,对日期进行自定义配置,指定日期注入时格式,许可日期为空 webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(sf, true)); } //User实体类含有属性:name(String),birthday(Date)。无参布局方法。全参的有参布局方法,getter,setter,toString方法 @RequestMapping("/date") public String data(HttpServletRequest request) throws ParseException { User u1 = new User("荷包蛋", sf.parse("2002-08-23")); User u2 = new User("饺子", sf.parse("2001-08-28")); User u3 = new User("橘子", sf.parse("2001-03-14")); List<User> list = new ArrayList<>(); list.add(u1); list.add(u2); list.add(u3); request.setAttribute("list", list); return "date"; }}
支配并启动tomcat测试不用jstl格式化标签库处理时:网站首页(left),相应页面(right)
利用jstl格式化标签库处理时:网站首页(left),相应页面(right)