我有这个问题,我要求用户输入一个日期我正在使用JQueryUI,它将其格式化为MM / dd / yyyy字符串。但是,我的表单对象接受日期,所以我希望能够通过表单将此字符串作为日期发送。
<input type="text" class="points datepicker" name="evaluationYear2"
value="${nomination.evaluationYear2}"
<c:if test="${mode==cons.READ_ONLY}">disabled</c:if> />
我需要发送evaluationYear2
作为Date对象(而不是字符串)。我怎样才能做到这一点?此外nomination
是一个表单对象我收到的是由于我的控制器方法而且只是为了审核(即当错误显示所以它刷新以前的信息)并且显然这发送它也作为日期对象返回,所以我需要格式化为MM / dd / yyyy。
我试过这个没有用,显然是因为编码没有任何意义:
<input type="text" class="points datepicker" name="evaluationYear2t"
value="${nomination.evaluationYear2}"
<c:if test="${mode==cons.READ_ONLY}">disabled</c:if> />
<fmt:parseDate var="evaluationYear2" value="${evaluationYear2t}" type="DATE" pattern="MM/dd/yyyy"/>
答案 0 :(得分:1)
如果您将Date作为字符串发送,甚至是时间戳,那将是最好的。
您可以在此处使用@InitBinder
:
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
}
或者,您可以使用HttpServletRequest
对象中的getParameter()直接从请求获取参数,并手动进行验证。