struts2 谷歌浏览器保存date类型数据时报错
2024-10-19 11:43:07
一同事发现一个bug,在chrome上保存一个表单时,后台会报错,而在firefox上则可以正常保存。
奇怪的地方在于,后端的程序是同一个,而在浏览器上查看请求header时,两个浏览器对应的字段内容还完全相同
xx.startTime:2012-01-01 00:00:00
后端xx对象的setStartTime方法
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
最终经过层层断点,struts2使用的是ognl表达式语言,把属性附到对象上去,由于属性时Date类型,typeConvert把string转换成Date时,ognl会根据浏览器请求时的local,来生成不同的dateTimeFormat对象列表,而安装的浏览器恰好是英文版,local为en-US,en-US下的时间格式化模式不包含能解析“2012-01-01 00:00:00”的模式,因此,对“2012-01-01 00:00:00”识别不了,而firefox是中文版的local是zh-CN,对应的dateTimeFormat列表包含了"yy-M-d H:mm:ss"因此成功转换成Date对象了
最新文章
- 耿丹CS16-2班第五次作业汇总
- [Linux] 账户管理命令(二)
- linux系统网址
- android 拉伸图片
- 编写高质量代码改善C#程序的157个建议[泛型集合、选择集合、集合的安全]
- ASP.NET的一般处理程序对数据的基本操作
- 一分钟明白 VS manifest 原理
- C++ 简史
- 内核调试神器SystemTap — 探测点与语法(二)
- Gradle安装步骤
- Python内置函数(21)——filter
- Error response from daemon: conflict: unable to remove repository reference 解决方案
- 使用Calender类获取系统时间和时间和运算
- Centos6.8 下 从零开始 部署 Java Web 应用
- epoll_wait会被系统中断唤醒
- VMware Tools安装教程
- 《Linux内核分析》实践4
- The Microservices Workflow Automation Cheat Sheet
- NETCLR via C#第四版(文摘)
- Vue + Element UI 实现权限管理系统 前端篇(九):接口格式定义