springMVC中@requestBody问题

近来没事帮同学做一个毕业设计用SpringMVC,项目开发一直有用但是没有自己从开始进行搭建,在使用@Request中出现了很多的问题

  • @RequestBody 将HTTP请求正文转换为适合的HttpMessageConverter对象。
  • @ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。

一 首先是springMVC的配置文件:

<context:annotation-config />

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->

<context:component-scan base-package="com.bookmanager.controller" />

<!--引入HttpMessageConverter接口-->

<mvc:annotation-driven />

<mvc:resources location="/js/**" mapping="/js/**"/>

<mvc:resources location="/css/**" mapping="/css/**"/>

<mvc:resources location="/images/**" mapping="/images/**"/>

<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

<property name="prefix" value="/WEB-INF/views/"/>

<property name="suffix" value=".jsp"/>

</bean>

二·spring.jar+jackson.jar

主要需要spring-webmvcjackson-mapper-asl两个包,至于log4j需要查看日志

三·但是在处理ajax请求时程序一直汇报400/415等等错误

$.ajax({

type:"POST",

url:"${pageContext.request.contextPath }/login",

dataType:"json",

contentType:"application/json",

data:JSON.stringify(param),

success:function(data){

console.info(data);

}

});

在网上查看了很多文章后来发现:

@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端

四·此时在控制端就可以正常进行了:

@RequestMapping(value="/login",method=RequestMethod.POST)

@ResponseBody

public ResultDTO login(@RequestBody UserMessage user){

ResultDTO dto = ResultDTO.getIntance();

return dto;

}

时间: 2024-08-08 01:07:57

springMVC中@requestBody问题的相关文章

springmvc中@requestbody注解接收请求参数

一.POST请求的四种常用方式 1.application/x-www-form-urlencoded 浏览器原生的表单,值为urlencoded之后的  key1=value1&key2=value2...... 2.multipart/form-data 浏览器原生的文件表单,用于传输文件 3.application/json 常用的请求头格式,值为json串  {"key1":"value1","key2":"value2

在SpringMVC中使用@RequestBody和@ResponseBody注解处理json时,报出HTTP Status 415的解决方案

我在使用SpringMVC的@RequestBody和@ResponseBody注解处理JSON数据的时候,总是出现415的错误,说是不支持所提交数据格式,我在页面中使用了JQuery的AJAX来发出JSON数据给服务器: $.ajax({ type:'post', url:'${pageContext.request.contextPath }/requestJSON.action', contentType :'application/json;charset=utf-8', //数据是JS

springMVC中使用注解@ResponseBody,@RequestBody传递json数据

在SpringMVC中,可以使用@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换. [email protected] 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区. 即可以将返回的对象(带有数据的javabean的集合List或Map)转换成JSON. [email protected] 该注解用于读取Request请求的

详解SpringMVC中Controller的方法中参数的工作原理

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelAndView等等,非常灵活.本文将分析SpringMVC是如何对这些参数进行处理的,

详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析] good

目录 前言 现象 源码分析 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口介绍 HandlerMethodArgumentResolver与HandlerMethodReturnValueHandler接口的具体应用 常用HandlerMethodArgumentResolver介绍 常用HandlerMethodReturnValueHandler介绍 本文开头现象解释以及解决方案 编写自定义的HandlerMet

SpringMVC中出现&quot; 400 Bad Request &quot;错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法

最近angularjs post到后台 400一头雾水 没有任何错误. 最后发现好文,感谢作者 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法 今天开发过程中,在SpringMVC中的Action中处理前台ajax请求传过来的json数据直接转成对应的实体类时出错:400 Bad Request,后台也不报错,400指的的是请求无效(请求有语法问题或者不能满足请求),调试了好长时间

SpringMVC中的XXE漏洞测试

SpringMVC框架支持XML到Object的映射,内部是使用两个全局接口Marshaller和Unmarshaller,一种实现是使用Jaxb2Marshaller类进行实现,该类自然实现了两个全局接口,用来对XML和Object进行双向解析.并且XML文件可以是DOM文档.输入输出流或者SAX handler. SpringMVC流行使用注解来快速开发,其中JAXB注解可以对JavaBean中需要与XML进行转化的地方进行标注.比如,实现XML文件到User对象的映射,User对象中使用J

【MVC - 参数原理】详解SpringMVC中Controller的方法中参数的工作原理[附带源码分析]

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelAndView等等,非常灵活.本文将分析SpringMVC是如何对这些参数进行处理的,

详解SpringMVC中Controller的方法中参数的工作原理——基于maven

转自:http://www.tuicool.com/articles/F7byQn 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html SpringMVC中Controller的方法参数可以是Integer,Double,自定义对象,ServletRequest,ServletResponse,ModelA