@RequestMapping(“url”)
一般作用在Controller的方法上,作为请求的映射地址。
@RequestMapping(value = “/test1”)//类级别映射,可以没有,一般用于减少书写量
@RequestMapping("test1") public class myController { //方法级别映射,必须有,那么这个方法的访问地址就是/test1/aaa @RequestMapping(value = "/aaa") public String test1() { return "test1"; } }
@RequestParam(value=“参数名”,required=“true/false”,defaultValue="")
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
处理 Content-Type 为 application/x-www-form-urlencoded 编码的数据。
将请求参数绑定到控制器的方法参数上(是springmvc中接收普通参数的注解)。
@RequestMapping("/test2") public ModelAndView test2(@RequestParam("name") String name){ ModelAndView mv = new ModelAndView(); mv.setViewName("hello"); mv.addObject("msg", "接收的请求参数:" + name); return mv; }
处理非 Content-Type: application/x-www-form-urlencoded编码格式的数据,比如:application/json、application/xml等类型的数据。
作用在形参列表上,用于将前台发送过来xml或json格式的数据封装为对应的JavaBean对象,封装时使用到的一个对象是系统默认配置的HttpMessageConverter进行解析,然后封装到形参上。
@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。
@RequestMapping("/logintest1") @ResponseBody public Object logintest1(@RequestBody User loginUser, HttpSession session) { user = userService.checkLogin(loginUser); session.setAttribute("user", user); return new JsonResult(user); }
作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用(Ajax),在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。
@RequestMapping("/logintest2") @ResponseBody public Object logintest2(String name, String password, HttpSession session) { user = userService.checkLogin(name, password); session.setAttribute("user", user); return new JsonResult(user); }
识别URL里面的参数。
// 对应http://localhost:8080/hello/666?param1=111¶m222 @RequestMapping("/hello/{id}") public String getDetails(@PathVariable(value="id") String id, @RequestParam(value="param1", required=true) String param1, @RequestParam(value="param2", required=false) String param2){ // xxxx }