spring mvc ajax 提交复杂数组类型

The server refused this request because the request entity is in a format not supported by the requested resource for the requested method

1、Spring Mvc 配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
    <context:component-scan base-package="com.test.controller">
    </context:component-scan>
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value=""></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                    <property name="supportedMediaTypes">
                        <list>
                            <value>text/html; charset=utf-8</value>
                            <value>application/json; charset=utf-8</value>
                        </list>
                    </property>
                </bean>
                <bean class="org.springframework.http.converter.ResourceHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.XmlAwareFormHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"></bean>
            </list>
        </property>
    </bean>
    <mvc:annotation-driven />
    <mvc:default-servlet-handler />
</beans>

引用 jackson jar包:jackson-annotations-2.1.1.jar、jackson-core-2.1.1.jar、jackson-databind-2.1.1.jar。

2、Controller代码

package com.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Repository;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2015/2/28.
 */
@Controller
@RequestMapping("/report")
public class ReportTypeController extends BaseController {

    @RequestMapping("/set")
    @ResponseBody
    public String set(@RequestBody List<User> settingBeans,HttpServletRequest request){return "";
    }
}

3、ajax请求:

       var userList= new Array();
            userList.push({id:1,name:"zhangsan"});
            userList.push({id:2,name:"lisi"});
            $.ajax({
                url: "/report/set",
                type:"post",
                data:JSON.stringify(userList),
                dataType:"json",
                contentType:"application/json",
                success:function(data){
                },error:function(data){
                }
            });
时间: 2024-10-31 19:03:13

spring mvc ajax 提交复杂数组类型的相关文章

Spring MVC ajax提交方式

使用jquery的ajax的方式来提交 第一种,以json对象的形式提交 var jsonData = { "name" : "zhangsan", "sex" : "boy" }; $.ajax({ type : "POST", url : "test_post1", data : jsonData,// success : function(data) { alert(data);

spring mvc 控制器方法传数组对象的一些经验

因为项目需要在一个表单里面提交多个对象,比较好的做法就是直接在控制器方法参数里传一个数组. 由于Spring mvc框架在反射生成控制方法的参数对象的时候会调用这个类的getDeclaredConstructor方法来获得构造函数, 但是一直报NoSuchMethodException的异常. 根据这个方法的jdk文档,这个类是一个数组对象时,这个方法会抛出java.lang.NoSuchMethodException,因为接口.数组类.void.基本类型没有构造函数. 同事后来给我支了两招,使

spring mvc+ajax 实现json格式数据传递

使用ajax传递JSON对象 下面示例为ajax发送json对象,返回json格式数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 $.ajax({ url: "api/user", type: "POST", timeout: txnTimeOut, async: true, dataType: "json", data: {username : "lucy"}

Spring MVC url提交参数和获取参数

普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      * Spring MVC URL提交参数      * @param name      * @return      */     @RequestMapping(/param)     public ModelAndView getInfo(@Request

MVC Ajax 提交是防止SCRF攻击

//在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue() { string cookieToken,fromToken; AntiForgery.GetTokens(null,out cookieToken,out fromToken); return cookieToken+":"+fromToken; } } $function({ ..

ASP.NET MVC ajax提交 防止CSRF攻击

//在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue() { string cookieToken,fromToken; AntiForgery.GetTokens(null,out cookieToken,out fromToken); return cookieToken+":"+fromToken; }} $function({ ...

如何用AJax提交name[]数组?

今天开发的时候遇到了这么一个问题:Jquery的Ajax如何提交[name][]数组呢?众所周知 name后面加[]可以直接向服务器传输数组,但是Ajax不行,直接使用name[]会直接报错. 示例: $.ajax({ url:"${ctx}/addcart", type:"post", data:{“name[]”:$(".pid").val()}, dataType:"text", traditional : true,

Spring MVC中数据绑定之日期类型

数据绑定应该算是Spring MVC的特点之一吧~简单易用且功能强大,极大地简化了我们编程人员对于用户输入数据的接收及转换. 早先版本的Spring中的数据绑定完全都是基于PropertyEditor的.而Spring3中引入了Converter,用来替代PropertyEditor完成类型转换. 那么我们也依照这个顺序,先来讲讲基于传统的PropertyEditor来实现日期类型的数据绑定. 在Spring MVC中,我们可以通过WebDataBinder来注册自定义的PropertyEdit

spring mvc ajax success不执行 反倒执行error

问题描述:spring mvc中前端使用ajax发送请求,后台使用@ResponseBody直接写数据到响应体中, 返回一个字符串,ajax的success回调函数不执行,反而执行error的回调函数 上代码: ajax请求: $.ajax({                url:"/eCommerceSSM/updateAdmin",                type:"put",                data:JSON.stringify({a