Jfinal from表单中提交的日期是1991-11格式,但是数据库字段类型是Date,getModel出错..
错误内容:
Timestamp format must be yyyy-mm-dd hh
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
错误内容:
Timestamp format must be yyyy-mm-dd hh
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(14)
已经做过备忘,jfinal 2.1 会让 Timestamp 支持 yyyy-mm-dd 格式的数据
老大 最后通过这种方式解决的
谢谢回答..不过最后通过下面这种方法解决的..
引用来自“JFinal”的评论
最简单的办法是将表字段类型改成 datetime,而不要使用 timestamp。datetime已经将时间精确到秒的级别了,一般是够用了。
如果应用比较特殊非要保存毫秒精度,一是页面传过来的日期按照格式来:yyyy-mm-dd hh:mm:ss[.fffffffff],如果不按格式来,可以将表单域的name改为另外的名,如xyz,然后 getModel()完事后,再 model.set(name, TimestampKit.toTimestamp(getPara("xyz"))自行转换后再 set 一下即可
getmodel取其他的数据。针对这个一个字段特殊处理。
没必要和自己较劲。
这里有个更详细的贴子,建议看一下:http://www.oschina.net/question/586193_241111
那样的话 getModule方法就没用了..
直接getStr过来自己转一下嘛
而且 还有一个地方 不是很理解..我的oracle数据库中这个字段是date类型,不是timestamp类型..但是 刚才打打断点clazz却是timestamp,这是为啥?
回复
jfinal 有关java类型与数据库字段类型的互转,完全依赖于JDBC给出的类型,可以看一下 com.jfinal.plugin.activerecrod.TableBuilder中是通过jdbc反射得到的数据表字段对应的java类型。在转换的时候也按照了这个标准来进行
回复
只需认准java类型为Date,然后找一个合适的oracle字段类型在JDBC规范下对应java 的Date就可以,我记得oracel的DATE 类型是可以对应上的,只不过貌似要设置合适的长度
回复
十分感谢 我再研究一下..祝愿jfinal越来越好
回复
感谢支持 jfinal 发展 ^_^
最简单的办法是将表字段类型改成 datetime,而不要使用 timestamp。datetime已经将时间精确到秒的级别了,一般是够用了。
如果应用比较特殊非要保存毫秒精度,一是页面传过来的日期按照格式来:yyyy-mm-dd hh:mm:ss[.fffffffff],如果不按格式来,可以将表单域的name改为另外的名,如xyz,然后 getModel()完事后,再 model.set(name, TimestampKit.toTimestamp(getPara("xyz"))自行转换后再 set 一下即可