Spring mvc接收TimeStamp类型(格式为“yyyy-MM-dd HH:mm:ss”)不能兼容问题
一开使从网上搜了一下,看到有大概几种思路:
①使用 HttpServletRequest request 作为controller的参数,然后在controller层通过 request.getParameter(“id”) 等形式拿出来,这个方式是可行的。但是我个人不太喜欢这种操作。
②自己写一个类似与DateTimeFormatter相似的类,使用DateTimeFormatterFactory。这个方式对新手不太友好,但是是最好的解决方式,我从网上还没有找到前辈已经写好的。
于是我取了个巧把也算,想到前端传回的String不能转换为TimeStamp类型是问题的根源所在,导致springBeanFactory不能给对象实例化。因为Spring有两种构造方式“构造方法构造”、“Setter方法构造”,而在实体类中使用的是Setter方法构造,于是修改了对应属性的setter方法如下:
public void setRegistrateTime(String registrateTime) {
this.registrateTime = Timestamp.valueOf(registrateTime);
}
// public void setRegistrateTime(Timestamp registrateTime) {
// this.registrateTime = registrateTime;
// }
将setter方法修改为了String参数,当然可能会在其他地方造成一定的影响,但是临时用吧,以后会使用第二种方式替换。