1.JSP页面的日期显示格式
在数据中保存date类型的数据是只显示年月日,但在所对应的JSP页面上显示的却不只是年月日。
解决方法:
在JSP页面引入标签
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
然后修改所对应的列:
<fmt:formatDate value="${birthday}" pattern="yyyy-MM-dd"/>
根据你所需要的格式设置pattern中所对应的格式
2.Spring MVC中表单提交日期问题
页面向控制器传入一个包含Date类型属性的对象,但
控制器要获得一个由页面传入的包含Date类型属性的对象,但页面赋值的是字符串,会出现由String转换到Date的异常。
解决方法:
在控制器中加入下面的代码:
@InitBinder
public void InitBinder(HttpServletRequest request, ServletRequestDataBinder binder) {
// 不要删除下行注释!!! 将来"yyyy-MM-dd"将配置到properties文件中
//SimpleDateFormat dateFormat = new SimpleDateFormat(getText("date.format", request.getLocale()));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true));
}
这就解决了页面填充的对象传递到控制器的问题,然后我们要求数据库里日期的存储格式是yyyy-MM-dd,我们需要将获得的对象中日期类型的属性的值进行格式化:
@RequestMapping(value="/addGradeInfo",method=RequestMethod.POST)
public String addGradeInfo(GradeInfo gradeInfo) throws JSONException{
Client client = Client.create();
WebResource webResource = client.resource("http://localhost:8080/jygl/jaxrs/enroll/gradeInfoService/add");
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String enroll_beginDate = dateFormat.format(gradeInfo.getEnroll_beginDate());
String enroll_endDate = dateFormat.format(gradeInfo.getEnroll_endDate());
String enrollPlan_beginDate = dateFormat.format(gradeInfo.getEnrollPlan_beginDate());
String enrollPlan_endDate = dateFormat.format(gradeInfo.getEnrollPlan_endDate());
JSONObject objectMap = new JSONObject();
objectMap.put("gradeName", gradeInfo.getGradeName());
objectMap.put("enroll_beginDate", enroll_beginDate);
objectMap.put("enroll_endDate", enroll_endDate);
objectMap.put("enrollPlan_beginDate", enrollPlan_beginDate);
objectMap.put("enrollPlan_endDate", enrollPlan_endDate);
objectMap.put("fee_enroll_c", gradeInfo.getFee_enroll_c());
objectMap.put("fee_enroll_m", gradeInfo.getFee_enroll_m());
objectMap.put("fee_enroll_me", gradeInfo.getFee_enroll_me());
objectMap.put("fee_enroll_kj", gradeInfo.getFee_enroll_kj());
objectMap.put("fee_exam_c", gradeInfo.getFee_exam_c());
objectMap.put("fee_exam_m", gradeInfo.getFee_exam_m());
objectMap.put("fee_exam_me", gradeInfo.getFee_exam_me());
objectMap.put("fee_exam_kj", gradeInfo.getFee_exam_kj());