前台模板freemark
<div class="input">
<input type="text" class="form-control" name="compLicenseEnd"
id="compLicenseEnd"
value="${companyBaseInfo.compLicenseEnd?default('')}"
style="width: 195px">
</div>
JS时间插件
laydate.render({
elem: '#compLicenseEnd' //指定元素
});
Pojo类
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
//@DateTimeFormat(pattern="yyyy-MM-dd")
private Date compLicenseEnd
使用表单提交时,当时间为空时,传到后台的时间参数为String类型,后台使用@JsonFormat与@DateTimeFormat都无法接收,因为“”无法被解析,所以报400,请求不到后台方法。
解决办法:
//解决前台传DATE参数为空找不到方法
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);//是否严格解析时间 false则严格解析 true宽松解析
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
在controller类里写入此方法,在接收参数时会进行初始化。