您的位置:首页 > 编程语言 > Java开发

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;  

        }  

  

    }  

  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json