SpringMVC使用@ResponseBody时返回json的日期格式及可能产生的问题
http://blog.csdn.net/z69183787/article/details/40375831
遇到的问题:
1 条件:
1.1、表单里有两个时间参数,都是作为隐藏项随表单一起提交:
<input name="createTime" id="createTime" type="hidden" />
<input name="lastTime" id="lastTime" type="hidden" />
1.2、在表单对应的model类User中,对createTime使用了时间格式转换,对lastTime没有使用。
@JsonSerialize(using = CustomDateSerializer.class)
public Date getCreateTime() {
return createTime;
} public Date getLastTime() {
return lastTime;
}
2 产生问题:在使用jQuery提交表单时,无法提交到后台controller。
$(function() {
$("#form").form({
url :"${pageContext.request.contextPath}/systemManage/saveUser",
onSubmit : function() {
parent.$.messager.progress({
title : '提示',
text : '数据处理中,请稍后....'
});
var isValid = $(this).form('validate');
if (!isValid) {
parent.$.messager.progress('close');
}
return isValid;
},
success : function(result) {
parent.$.messager.progress('close');
result = $.parseJSON(result);
if (result.status) {
parent.reload;
parent.$.modalDialog.openner.datagrid('reload');
parent.$.modalDialog.handler.dialog('close');
parent.$.messager.show({
title : result.title,
msg : result.message,
timeout : 1000 * 2
});
}else{
parent.$.messager.show({
title : result.title,
msg : result.message,
timeout : 1000 * 2
});
}
}
});
});
在/systemManage/saveUser对应controller方法中打断点无法走入,即无法触发controller方法,但奇怪的是,我的集成了HandlerInterceptorAdapter的拦截器可拦截到url。随后js进入success分支。
3 调查问题,
3.1 发现形如下列的表单项可以提交表单
<input name="createTime" id="createTime" type="hidden" value="2016-06-21 17:24:19"> <input name="lastTime" id="lastTime" type="hidden" value="">
3.2 而形如下列的表单无法提交
<input name="createTime" id="createTime" type="hidden" value="2016-06-21 17:24:19"> <input name="lastTime" id="lastTime" type="hidden" value="14363774849">
3.3 怀疑是lastTime的提交导致的问题,尝试将getLastTime加上时间格式,问题解决。理由不清楚。
@JsonSerialize(using = CustomDateSerializer.class) public Date getLastTime() {
return lastTime;
}
3.4 后记,将日期类型的input都使用@JsonSerialize修改日期格式以后,表单彻底无法提交了,3.1中描述的现象也无法重现。
或许是我使用了jquery.easyui.min.js的表单提交函数.form。
<script type="text/javascript">
$(function() {
$("#form").form({
url : "${pageContext.request.contextPath}/systemManage/saveUser",
onSubmit : function() {
parent.$.messager.progress({
title : '提示',
text : '数据处理中,请稍后....'
});
var isValid = $(this).form('validate');
if (!isValid) {
parent.$.messager.progress('close');
}
return isValid;
},
success : function(result) {
parent.$.messager.progress('close');
result = $.parseJSON(result);
if (result.status) {
parent.reload;
parent.$.modalDialog.openner.datagrid('reload');
parent.$.modalDialog.handler.dialog('close');
parent.$.messager.show({
title : result.title,
msg : result.message,
timeout : 1000 * 2
});
} else {
parent.$.messager.show({
title : result.title,
msg : result.message,
timeout : 1000 * 2
});
}
}
});
});
</script>
所谓的表单无法提交的具体表现是,onSubmit执行以后,无法触发url指定的后台程序,程序直接走进success分支中,如果将result参数打印出来会发现,这是个400出错界面,
出错信息的大概意思是,js在组织request的时候出错,所以肯定无法触发后台程序了。
解决的办法就是删除表单中的日期类型的input,彻底解决的办法还未找到。
SpringMVC使用@ResponseBody时返回json的日期格式及可能产生的问题的更多相关文章
- [转]SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
一.SpringMVC使用@ResponseBody时返回json的日期格式 前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co ...
- SpringMVC使用@ResponseBody时返回json的日期格式、@DatetimeFormat使用注意
一.SpringMVC使用@ResponseBody时返回json的日期格式 前提了解: @ResponseBody 返回json字符串的核心类是org.springframework.http.co ...
- springmvc学习笔记--json--返回json的日期格式问题
(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...
- spring Mvc json返回json的日期格式问题
(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...
- 解决springmvc使用ResponseBody注解返回json中文乱码问题
spring版本:4.2.5.RELEASE 查看“org.springframework.http.converter.StringHttpMessageConverter”源码,中有一段说明: B ...
- SpringMVC 利用@ResponseBody注解返回Json时,出现406 not acceptable 错误的解决方法。
1 在RequestMapping中加入produces属性如: @RequestMap(value="/path",produces="application/json ...
- 【原】:关于使用springmvc的responseBody注解返回json的一些总结
配置不正确可能会出现406错误 1:首先需要导入三个jar包: 2:需要在springmvc的配置文件文件中添加转换器并开启注解驱动: 3:controller:这里返回object也是可以的; 4: ...
- spingmvc 返回json数据日期格式化方法
第一种: json 用的是这个依赖 <!-- JSON lib 开发包 以及它的依赖包 --> <dependency> <groupId>com.fasterxm ...
- SpringMVC 避免IE执行AJAX时,返回JSON出现下载文件
<?xml version="1.0" encoding="UTF-8"?> <!-- SpringMVC配置文件 --> <be ...
随机推荐
- lateral view
原文地址:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+LateralView# lateral view用于和spl ...
- hexo静态博客的安装及应用实践记录
1. 必须要安装 nodejs,git 2. 安装hexo node install -g hexo 3. npm源的问题使在安装时有卡住的问题而导致无法安装,则需要更改npm的源 npm confi ...
- Android动画知识汇总
Interpolator(插值器) Interpolatort通常在动画中使用,主要来改变动画变化率.常用的有下面几种Interpolator,下面图文解说下: AccelerateDecelerat ...
- git .gitignore 文件不起作用
.gitignore 不起作用的原因是因为 git 有以前文件缓存,只要清理一次缓存即可 git rm -r --cached . // 然后再进行 git git add . git commit
- Java NIO 系列教程 <转>
Java NIO提供了与标准IO不同的IO工作方式: Channels and Buffers(通道和缓冲区):标准的IO基于字节流和字符流进行操作的,而NIO是基于通道(Channel)和缓冲区(B ...
- Tomcat配置JMX远程监控(Windown7 Linxu)
一:Window7下配置方式. 1.配置catalina.bat 在第一行加入下面配置 注意下面这些配置要在一行,注意包含空格. set JAVA_OPTS=-Dcom.sun.management. ...
- hbase源码系列(四)数据模型-表定义和列族定义的具体含义
hbase是一个KeyValue型的数据库,在<hbase实战>描述它的逻辑模型[行键,列族,列限定符,时间版本],物理模型是基于列族的.但实际情况是啥?还是上点代码吧. HTableDe ...
- JAVA多线程笔试题
一.题目内容 二.我的答案 利用了线程池.考虑了超时处理.不知道这样写是否还有其他问题,或者更好更优的解决方案? import java.util.*; import java.util.concur ...
- 安卓程序代写 网上程序代写[原]Android之Bluetooth编程
ViewGroup 相关资料 : http://www.incoding.org/admin/archives/199.html http://bbs.csdn.net/topics/37014474 ...
- Recommended Practices for WPF Custom Control Developers
I have always found that there isn’t enough documentation about Custom Control development in WPF. M ...