Spring MVC ajax提交json数组时415错误解决方法

<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代码   收藏代码
  1. var formdata = {};  
  2. formdata.backup = $("input[name='backup']:checked").val();  
  3. formdata.autobackManner = $("select[name='autobackManner'] option:selected").val();  
  4. formdata.partitionCount = $("select[name='partitionCount'] option:selected").val();  
  5. formdata.enable = $("input[name='enable']:checked").val();  
  6. if (formdata.backup == 'local') {  
  7.     formdata.local = {};  
  8.     formdata.local.path = $('#local_path').val();  
  9. else {  
  10.     formdata.ftp = {};  
  11.     formdata.ftp.serverip = $("input[name='serverip']").val();  
  12.     formdata.ftp.user = $("input[name='user']").val();  
  13.     formdata.ftp.password = $("input[name='password']").val();  
  14.     formdata.ftp.encoding = $("select[name='encoding'] option:selected").val();  
  15. }  
  16. $.ajax({  
  17.     url: '/sim/systemConfig/modifyLogBackupConfig?configId=log_backup_config',  
  18.     type: 'POST',  
  19.     data: JSON.stringify(formdata),//*****转换成JSON对象  
  20.     dataType:'json',  
  21.     contentType:"text/javascript",//*****和application-servlet.xml配置相同  
  22.     success: function(res){  
  23.     }  
  24. });  

 

Xml代码   收藏代码
  1. <mvc:annotation-driven>  
  2.     <mvc:message-converters register-defaults="false">  
  3.         <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>  
  4.         <bean class="org.springframework.http.converter.StringHttpMessageConverter"/>  
  5.         <bean class="org.springframework.http.converter.FormHttpMessageConverter"/>  
  6.         <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">  
  7.             <property name="supportedMediaTypes">  
  8.                 <list>  
  9.                     <!-- *****自定义JSON返回类型***** -->  
  10.                     <value>text/javascript;charset=UTF-8</value>  
  11.                 </list>  
  12.             </property>  
  13.         </bean>  
  14.     </mvc:message-converters>  
  15. </mvc:annotation-driven>  

 

Java代码   收藏代码
  1. @RequestMapping("modifyLogBackupConfig")  
  2. @ResponseBody  
  3. public Result modifyLogBackupConfig(String configId,/*加入注解*/@RequestBody LogBackupConfig config){  
  4.     Result result = new Result(true"保存成功!");  
  5.   
  6.     return result;  
  7. }  

 

Java代码   收藏代码
  1. public class LogBackupConfig implements Serializable {  
  2.     private String backup;  
  3.     private String autobackManner;  
  4.     private String partitionCount;  
  5.     private boolean enable;  
  6.     private FTP ftp;  
  7.     private Local local;  
  8.       
  9.     //*****提供无参构造函数*****//  
  10.     public LogBackupConfig() {  
  11.         super();  
  12.         // TODO Auto-generated constructor stub  
  13.     }  
  14.   
  15.     public String getBackup() {  
  16.         return backup;  
  17.     }  
  18.   
  19.     public void setBackup(String backup) {  
  20.         this.backup = backup;  
  21.     }  
  22.   
  23.     public String getAutobackManner() {  
  24.         return autobackManner;  
  25.     }  
  26.   
  27.     public void setAutobackManner(String autobackManner) {  
  28.         this.autobackManner = autobackManner;  
  29.     }  
  30.   
  31.     public String getPartitionCount() {  
  32.         return partitionCount;  
  33.     }  
  34.   
  35.     public void setPartitionCount(String partitionCount) {  
  36.         this.partitionCount = partitionCount;  
  37.     }  
  38.   
  39.     public boolean isEnable() {  
  40.         return enable;  
  41.     }  
  42.   
  43.     public void setEnable(boolean enable) {  
  44.         this.enable = enable;  
  45.     }  
  46.   
  47.     public FTP getFtp() {  
  48.         return ftp;  
  49.     }  
  50.   
  51.     public void setFtp(FTP ftp) {  
  52.         this.ftp = ftp;  
  53.     }  
  54.   
  55.     public Local getLocal() {  
  56.         return local;  
  57.     }  
  58.   
  59.     public void setLocal(Local local) {  
  60.         this.local = local;  
  61.     }  
  62.   
  63.     class FTP implements Serializable {  
  64.         private String serverip;  
  65.         private String user;  
  66.         private String password;  
  67.         private String encoding;  
  68.         //*****提供无参构造函数*****//  
  69.         public FTP() {  
  70.             super();  
  71.             // TODO Auto-generated constructor stub  
  72.         }  
  73.   
  74.         public String getServerip() {  
  75.             return serverip;  
  76.         }  
  77.   
  78.         public void setServerip(String serverip) {  
  79.             this.serverip = serverip;  
  80.         }  
  81.   
  82.         public String getUser() {  
  83.             return user;  
  84.         }  
  85.   
  86.         public void setUser(String user) {  
  87.             this.user = user;  
  88.         }  
  89.   
  90.         public String getPassword() {  
  91.             return password;  
  92.         }  
  93.   
  94.         public void setPassword(String password) {  
  95.             this.password = password;  
  96.         }  
  97.   
  98.         public String getEncoding() {  
  99.             return encoding;  
  100.         }  
  101.   
  102.         public void setEncoding(String encoding) {  
  103.             this.encoding = encoding;  
  104.         }  
  105.   
  106.     }  
  107.   
  108.     class Local implements Serializable {  
  109.         private String path;  
  110.         //*****提供无参构造函数*****//  
  111.         public Local() {  
  112.             super();  
  113.             // TODO Auto-generated constructor stub  
  114.         }  
  115.   
  116.         public String getPath() {  
  117.             return path;  
  118.         }  
  119.   
  120.         public void setPath(String path) {  
  121.             this.path = path;  
  122.         }  
  123.   
  124.     }  
  125.   
  126. }  



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值