0 0

@RequestBody List ajax请求json数组 后台spring mvc 无法接收5

我看网上很多人都这样写 但我反复试了几次 死活不行 麻烦大家帮忙看看
我的是spring mvc3.1.3

代码如下
java
    @RequestMapping(value = "testRequestBody.do", method = RequestMethod.POST)
    public void testRequestBody(@RequestBody List<UserVO> users) throws UnsupportedEncodingException {
        System.out.println("in here");
        System.out.println(users.size());
        System.out.println("end");
    }

用户对象类
public class UserVO {
    private String name;
    private String pwd;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public UserVO() {
    }

    public UserVO(String name, String pwd) {
        this.name = name;
        this.pwd = pwd;
    }
}


javascript
var users = JSON.stringify([
                {name: "user1", pwd: "123"},
                {name: "user2", pwd: "123"}
            ]);
            alert(users);
            $.ajax({
                type: "post", // 请求方式
                url: "testRequestBody.do", //url地址
                data:users, //数据
                contentType: "application/json",
                dataType: "json",
                success: function (response, ifo) {
                    alert("success");
                }, error: function () {
                    alert("error");
                }
            })


chrome 后台错误 Failed to load resource: the server responded with a status of 415 (Unsupported Media Type)

问题补充:@RequestBody List<UserVO> users 如果将这里去掉
则可以成功访问到方法 说明ajax是能访问服务器的
只是在转换对象的时候出错了  但应该怎么写呢?

5个答案 按时间排序 按投票排序

0 0

你试试用UserVO[] uservo来接收。不用List<UserVO> 接收

2014年5月14日 17:56
0 0

400错误:传的参数是否跟后台@resquestbody参数一一 对应(List前台是数组),还有是否加上了jackson的四个jar包,spring3.0和3.1.1不支持jackson 2.x  3.1.3支持
415错误:前台ajax加上dataType: "json",
     contentType: "application/json; charset=gbk",

2013年5月07日 16:36
0 0

spring mvc默认不支持这种形式,但是可以自己扩展。 已经有人做了对应实现了,地址为:http://jinnianshilongnian.iteye.com/blog/1719952
或者通过传json字符串到后台再转换成对应对象了。

2013年5月07日 08:44
0 0

@Controller
@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")
@ResponseBody(位置1)
public @ResponseBody(位置2) Pet getPet(@PathVariable String petId, Model model) {   
    // implementation omitted
   return pet;
}

提供对象转换为JSON的 message 转换器。

或者使用jackson 直接 转换, 返回值改为string 也行。

2013年5月06日 17:21
0 0

有没有加jackson的json包

2013年5月06日 10:58

相关推荐

    Spring MVC不能直接接收list类型参数的问题

    这种方法适用于 JSON 格式的请求体,通过 `@RequestBody` 注解,Spring MVC 可以自动将请求体中的 JSON 数据转换为 Java 对象。 #### 总结 以上介绍了三种解决 Spring MVC 无法直接接收 List 类型参数的方法。这些...

    jquery ajax 向后台传递数组参数示例

    在JavaScript中,jQuery的AJAX功能常常用于与服务器进行异步数据交互。...同时,不同的后端框架可能有内置的JSON处理机制,例如Spring MVC中的`@RequestBody`注解,可以简化JSON字符串到Java对象的转换。

    springmvc3+json参数传递后台接收json参数

    综上所述,"springmvc3+json参数传递后台接收json参数"涵盖了Spring MVC 3中处理JSON数据的核心概念和实践方法,包括JSON数据格式、`@RequestBody`注解、前端JSON数据封装、批量处理、错误处理和配置支持等方面的...

    springMvc集合接收参数的用法

    在后端,你需要创建一个能够接收JSON数组的控制器方法,这里使用`@RequestBody`注解来自动将JSON数据转换为Java对象。 ```java import org.springframework.web.bind.annotation.PostMapping; import org.spring...

    Spring MVC – Easy REST-Based JSON Services with @ResponseBody

    标题中的“Spring MVC – Easy REST-Based JSON Services with @ResponseBody”是指使用Spring MVC框架构建基于REST的JSON服务,并通过使用`@ResponseBody`注解来简化这一过程。REST(Representational State ...

    spring mvc +Extjs

    使用`@RequestMapping`注解来指定URL和HTTP方法,`@RequestBody`注解告诉Spring将请求体中的JSON数据映射到方法参数上。`@ResponseBody`注解则表示返回值将被转换为JSON并写入HTTP响应。以下是对应的Java代码: ```...

    jQuery的Ajax实现异步传输List、Map

    这里,`YourPojo`是自定义的Java类,包含一个List字段和一个Map字段,Spring MVC会自动将接收到的JSON数据映射到这个类的实例上。 在实际应用中,你可能还需要关注跨域请求(CORS)问题,因为默认情况下,浏览器...

    ajax和spring互传json对象,并显示到列表中

    - **接收请求**:在后端,Spring MVC提供了`@RequestBody`注解,用于解析请求中的JSON数据。你需要创建一个对应的Java Bean来接收这些数据: ```java @RestController public class DataController { @...

    SpringMVC框架中传递JSON数据时前台报406错误解决办法

    在Spring MVC框架中,开发人员经常需要处理JSON数据进行前后端交互。然而,在实际操作中,我们可能会遇到一个常见的问题,即HTTP状态码406(Not Acceptable)。这个错误通常意味着服务器生成了响应,但客户端无法...

    springMvc 前端用json的方式向后台传递对象数组方法

    addVipFeeList方法的参数是@RequestBody注解修饰的一个List对象,这个注解告诉Spring MVC框架将请求体中的JSON数据自动转换成一个VipFee类型的List集合。如果转换成功,Spring MVC会尝试调用这个方法,并将转换得到...

    SpringMVC接收复杂集合对象(参数)代码示例

    2、Controller方法:Java代码@Controller @RequestMapping("/catalog.do") public class CatalogController { @RequestMapping(params = "fn=saveMaps") @ResponseBody public AjaxJson saveMaps(@RequestBody List,...

    spring mvc利用ajax向controller传递对象的方法示例

    Spring MVC通过`@RequestParam`、`@ModelAttribute`和`@RequestBody`等注解提供了灵活的方式,来处理Ajax请求中传递的不同类型的数据。理解这些注解的用法,能够帮助开发者更有效地构建前后端交互的Web应用程序。在...

    springmvc+json

    在现代Web开发中,Spring MVC框架与JSON的结合使用是相当常见的。Spring MVC是一个强大的MVC(模型-视图-控制器)框架,用于构建可维护、高性能的Java Web应用程序。而JSON(JavaScript Object Notation)是一种轻量...

    Springmvc处理ajax请求并返回json数据

    总结一下,Spring MVC通过`@RequestMapping`、`@ResponseBody`和`@RequestBody`注解,提供了处理AJAX请求和返回JSON数据的强大功能。这使得我们可以轻松地构建前后端分离的应用,实现高效的页面异步更新。在实际开发...

    spirngmvc js传递复杂json参数到controller的实例

    - Controller方法:使用`@RequestBody`注解接收JSON字符串,Spring MVC会将其反序列化为`List&lt;User&gt;`。 3. **接收User数组**: - 如果想接收User数组,只需将Controller方法中的`List&lt;User&gt;`参数改为`@Request...

    Spring MVC前端与后端5种ajax交互方法【总结】

    前端构建对象并发送,如`ajaxPost("/base/org/getOrgById", org)`,后端控制器使用`@RequestBody`注解接收,自动将JSON反序列化为对象。 ```java @RequestMapping("/getOrgById") public Org getOrgById(@Request...

    spring_MVC源码

    -- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --&gt; 14. &lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /&gt; 15. 16. &lt;!-- 对模型视图名称的解析...

    dataTables java后台解析http请求参数demo

    在Java后端,我们通常使用Servlet或者Spring MVC来接收和解析这些请求。例如,使用`HttpServletRequest`对象,我们可以调用`getParameter()`或`getParameterMap()`方法来获取请求参数。对于多维数组,可能需要使用`...

    springmvc相关面试问题.docx

    Spring MVC通过Jackson库支持与AJAX的交互,将Java对象转换为JSON格式,供JavaScript处理。步骤如下: 1. 引入Jackson库的jar包。 2. 在Spring配置文件中配置JSON的映射,例如启用`MappingJackson2...

Global site tag (gtag.js) - Google Analytics