绑定参数的注解
@RequestParam |
绑定请求参数 |
@CookieValue |
绑定cookie的值 |
@RequestHeader |
绑定请求头参数 |
@PathVariable |
绑定URL中的变量 |
示例
// 绑定请求参数 @RequestMapping(value="/index") public ModelAndView index(@RequestParam("sex") String sex, @RequestParam("age") String age) { System.out.println(sex); System.out.println(age); // 返回指定的jsp页面 ModelAndView mav = new ModelAndView("message"); return mav; }@RequestParam 有以下三个参数
1.value:参数名
2.required:是否必填,默认为true,表示请求中必须包含对应的参数名,如果不存在将抛出异常
@RequestParam(value = "sex" , required = false) String sex // 如果非必填,则必须指定为false
3.defaultValue: 默认参数名,设置该参数时,自动将required设为false。极少情况需要使用该参数,也不推荐使用该参数.
// 绑定cookie,请求头参数 @RequestMapping(value="/index") public ModelAndView index(@CookieValue("JSESSIONID") String sessionId, @RequestHeader("Accept-Language") String acceptlanguage) { System.out.println(sessionId); System.out.println(acceptlanguage); // 返回指定的jsp页面 ModelAndView mav = new ModelAndView("message"); return mav; }
// 绑定URL中的变量 @RequestMapping(value="{userId}",method=RequestMethod.POST) public ModelAndView index(@PathVariable("userId")String userId) { System.out.println(userId); // 返回指定的jsp页面 ModelAndView mav = new ModelAndView("message"); return mav; }
---------------------------------------------------------------------------------------------------------------------------------------------------------
使用命令/表单对象绑定
@RequestMapping(value="{userId}",method=RequestMethod.POST) public ModelAndView index(User user) { System.out.println(user.userId); // 返回指定的jsp页面 ModelAndView mav = new ModelAndView("message"); return mav; } //使用Servlet API对象作为入参 @RequestMapping(value="/index") public void index(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws ServletException, IOException { request.getRequestDispatcher("message.jsp").forward(request, response); }注:如果处理方法自行使用 httpServletResponse 返回响应,则处理方法的返回值设置成 void 即可。
// 使用Spring的Servlet API代理类 public void index(WebRequest request){ }
使用IO对象作为入参 public void index(OutputStream os){ }
除此之外,还支持java.util.Locale、java.security.Principal,可以通过Serlvet的httpServletRequest的getLocale()及getUserPrincipal()得到相应的值。如果处理方法的入参类型为locale或principal,Spring MVC自动从请求对象中获取相应的对象并传递给处理方法的入参。
返回json数据格式
1.导入jar包
jackson-core-asl-1.9.13.jar
jackson-mapper-asl-1.9.13.jar
2.添加XML配置
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>application/json</value> <value>text/json</value> </list> </property> </bean> </list> </property> </bean>
3.代码
@RequestMapping(value="/index") public ResponseEntity<User> index(){ User user = new User(); user.setAge("A"); user.setSex("B"); return new ResponseEntity<User>(user,HttpStatus.OK); }