Spring MVC ajax提交json数组时415错误解决方法
2015-06-03 10:07
711 查看
<pre name="code" class="html"><bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <!-- <bean id="fastJsonHttpMessageConverter" class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"> --> <bean id="fastJsonHttpMessageConverter" class="com.netbox.util.FastJsonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value><!-- 避免IE出现下载JSON文件的情况 --> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean>
$(function() { $("#buyButton").click (function() { var goodsList= new Array(); $(".goodsItem").each(function(){ var goodsId=$(this).find("input").attr("id"); var buyCount=$(this).find("input").val(); goodsList.push({"goodsId":goodsId,"buyCount":buyCount}); }); console.info(goodsList[0]); console.info(JSON.stringify(goodsList)); $.ajax({ type : "POST", contentType:"application/json", url : "${pageContext.request.contextPath}/customer/submitOrder", data: JSON.stringify(goodsList), dataType : "json", success : function(result) { alert("**success****"); } }) }); });
@ResponseBody @RequestMapping(value = "/submitOrder") public Json submitOrder(@RequestBody ArrayList<GoodsJson> list, HttpSession session, HttpServletRequest request) { Json json = new Json(); try { json.setSuccess(true); json.setMsg("验证成功!"); } catch (Exception e) { json.setMsg(e.getMessage()); } return json; }
Js代码
var formdata = {};
formdata.backup = $("input[name='backup']:checked").val();
formdata.autobackManner = $("select[name='autobackManner'] option:selected").val();
formdata.partitionCount = $("select[name='partitionCount'] option:selected").val();
formdata.enable = $("input[name='enable']:checked").val();
if (formdata.backup == 'local') {
formdata.local = {};
formdata.local.path = $('#local_path').val();
} else {
formdata.ftp = {};
formdata.ftp.serverip = $("input[name='serverip']").val();
formdata.ftp.user = $("input[name='user']").val();
formdata.ftp.password = $("input[name='password']").val();
formdata.ftp.encoding = $("select[name='encoding'] option:selected").val();
}
$.ajax({
url: '/sim/systemConfig/modifyLogBackupConfig?configId=log_backup_config',
type: 'POST',
data: JSON.stringify(formdata),//*****转换成JSON对象
dataType:'json',
contentType:"text/javascript",//*****和application-servlet.xml配置相同
success: function(res){
}
});
Xml代码
<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.FormHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<!-- *****自定义JSON返回类型***** -->
<value>text/javascript;charset=UTF-8</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
Java代码
@RequestMapping("modifyLogBackupConfig")
@ResponseBody
public Result modifyLogBackupConfig(String configId,/*加入注解*/@RequestBody LogBackupConfig config){
Result result = new Result(true, "保存成功!");
return result;
}
Java代码
public class LogBackupConfig implements Serializable {
private String backup;
private String autobackManner;
private String partitionCount;
private boolean enable;
private FTP ftp;
private Local local;
//*****提供无参构造函数*****//
public LogBackupConfig() {
super();
// TODO Auto-generated constructor stub
}
public String getBackup() {
return backup;
}
public void setBackup(String backup) {
this.backup = backup;
}
public String getAutobackManner() {
return autobackManner;
}
public void setAutobackManner(String autobackManner) {
this.autobackManner = autobackManner;
}
public String getPartitionCount() {
return partitionCount;
}
public void setPartitionCount(String partitionCount) {
this.partitionCount = partitionCount;
}
public boolean isEnable() {
return enable;
}
public void setEnable(boolean enable) {
this.enable = enable;
}
public FTP getFtp() {
return ftp;
}
public void setFtp(FTP ftp) {
this.ftp = ftp;
}
public Local getLocal() {
return local;
}
public void setLocal(Local local) {
this.local = local;
}
class FTP implements Serializable {
private String serverip;
private String user;
private String password;
private String encoding;
//*****提供无参构造函数*****//
public FTP() {
super();
// TODO Auto-generated constructor stub
}
public String getServerip() {
return serverip;
}
public void setServerip(String serverip) {
this.serverip = serverip;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEncoding() {
return encoding;
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
}
class Local implements Serializable {
private String path;
//*****提供无参构造函数*****//
public Local() {
super();
// TODO Auto-generated constructor stub
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
}
相关文章推荐
- XML 与 JSON 优劣对比
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧
- .Net中的json操作类用法分析
- js Object2String方便查看js对象内容
- C#中的DataSet、string、DataTable、对象转换成Json的实现代码
- Json实现异步请求提交评论无需跳转其他页面
- javascript格式化json显示实例分析
- jquery处理json数据实例分析
- jQuery向后台传入json格式数据的方法
- jquery中ajax调用json数据的使用说明
- jQuery遍历json中多个map的方法