Action 参数注入对Date支持不好

Action参数注入对Date支持还比较弱

前端传入 kssj =2018-01-01 11:30:31

后端用  public xx(Date kssj){

...

}

此时kssj 会舍去 11:30:31

看源码因为调用了getParaToDate的原因

return new java.text.SimpleDateFormat("yyyy-MM-dd").parse(value.trim());

评论区

JFinal

2018-12-24 10:50

这个与 getParaToDate() 无关,其只是针对 urlPara

你将 Date 参数通过问号挂参传过来,或者通过表单提交传过来就可以了

快乐的蹦豆子

2018-12-24 16:02

我的意思是前端传过来的是带有时分秒的,但是在后端通过action注入后十分秒丢失了。在DateGetter中有这么一个方法
public java.util.Date get(Action action, Controller c) {
return c.getParaToDate(getParameterName(), getDefaultValue());
}
其中c.getParaToDate 中是用
return new java.text.SimpleDateFormat("yyyy-MM-dd").parse(value.trim());
进行的格式化
我想应该是这个yyyy-MM-dd格式化的问题。

JFinal

2018-12-24 16:24

Date 是这样转换的,你的需求该这么来满足:
public xx(java.sql.Timestamp kssj) {

}

JFinal

2018-12-24 16:28

当然,你的反馈有价值,刚刚已经改了源码,将 Date kssj 这种用法改成了通过判断长度来决定是要转成 Timestamp 还是 Date,感谢反馈

目前你先通过 java.sql.Timestamp 这个参数来实现功能

快乐的蹦豆子

2018-12-24 17:12

这个地方如果能搞个注解,允许自定义格式就最好了,因为前端的格式千差万别,可能是yyyy-MM-dd hh:mm:ss 可能是yyyy-MM-ddThh:mm:ssZ,我还见过几个其他的

热门反馈

扫码入社