首先上源码 在面试时经常会问到我们如何使用SpringMVC将Http请求转换为java对象,或者又是问如何将结果转换为java的呢? SpringMVC在接收到请求之后HandlerMapping像是一个路由找到处理器和拦截器,而处理器对控制器进行包装就是对控制器进行了功能的增强,而处理器如何能是json和java对象的转换呢?这就要了解 这个时候就会使用到一个类他的作用是HttpMessageConverter<T>,这个的作用是将媒体类型对应的请求读入,控制器返回转换为对应媒体类型 ,第…
我在使用SpringMVC的@RequestBody和@ResponseBody注解处理JSON数据的时候,总是出现415的错误,说是不支持所提交数据格式,我在页面中使用了JQuery的AJAX来发出JSON数据给服务器: $.ajax({ type:'post', url:'${pageContext.request.contextPath }/requestJSON.action', contentType :'application/json;charset=utf-8', //数据是JS…
一.Spring2.5之前,我们都是通过实现Controller接口或其他实现来定义我们的处理器类. 二.Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类.并且提供了一组强大的注解:需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器. @C…
1. 非注解方式 1.1 处理器适配器 上一节中使用的处理器适配器是:org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.即:   SimpleControllerHandlerAdapter适配器能执行实现了Controller接口的Handler,所以我们所写的Handler需要实现Controller接口.  除了这个适配器外,还有另一个适配器,叫org.springframework.web.servlet…
从上一篇的springmvc入门中已经看到,springmvc.xml中的配置了映射器和适配器,是使用非注解的方式来配置的,这是非注解方式的一种,这里再复习一下: 1. 非注解方式 1.1 处理器适配器 上一节中使用的处理器适配器是:org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.即:   SimpleControllerHandlerAdapter适配器能执行实现了Controller接口的Handler,所…
1. SpringMVC中的拦截器(Interceptor) 1.1. 作用 拦截器是运行在DispatcherServlet之后,在每个Controller之前的,且运行结果可以选择放行或拦截! 除此以外,拦截器还会运行在Controller之后,关于拦截器,在处理某一个请求时,最多有3次执行!只不过,通常关注最多的是第1次执行,即在Controller之前的那次! 1.2. 基本使用 需要自定义类,例如名为LoginInterceptor,实现HandlerInterceptor接口,重写3…
Spring的@RequestBody非常牛x,可以将提交的json直接转换成POJO对象. 正好今天有这样的需求,使用一下,结果一直报415,十分头疼. HTTP 415 错误 – 不支持的媒体类型(Unsupported media type) 我的angularJs是这样写的 $http({method: "POST", url: url; headers: {'Content-type': 'application/json;charset=UTF-8'}, data: sco…
使用POST请求的时候一直报错: Ajax 未设置 contentType 时会报 415 . 后台 RequestBody  承接前台参数,故对参数data的要求为“必传”“JSON”,否则会报400. @RequestMapping(value="/venueDetail") @ResponseBody public Map<String,Object> getVenueDetail(@RequestBody Map<String, Object> para…
注意:ajax向后台传值的时候,必须加上contentType:"application/json"; springmvc的注解@requestBody可以通过页面提交json来自动封装成bean对象,但是如果这样的怎么处理 public class User{ private String id; private int age; private String name; private Class classInfo; //getter,setter } public class…
springMVC中@RequestParam注解用在Controller层获解析.提取参数,当然你也可以用request.getParameter("name")来获取参数,而@RequestParam注解接收参数有几种不同的写法. 1.test(String name) 像正常的方法接收参数,不带@RequestParam注解.这种写法,如果没有name参数不会报错. 2.test(@RequestParam String name) 带@RequestParam注解.这种写法,n…