spring web 常用注解01

常用注解01

@RequestMapping

@RequestMapping(“url”)

一般作用在Controller的方法上,作为请求的映射地址。
@RequestMapping(value = “/test1”)//类级别映射,可以没有,一般用于减少书写量

@RequestMapping("test1")
public class myController {
    //方法级别映射,必须有,那么这个方法的访问地址就是/test1/aaa
    @RequestMapping(value = "/aaa")
    public String test1() {
        return "test1";
    }
}

@RequestParam

@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;
}

@RequestBody

处理非 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

作用在方法上的,@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);
}

@PathVariable

识别URL里面的参数。

// 对应http://localhost:8080/hello/666?param1=111&param222
@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
}
上一篇:springMVC(四)数据处理及跳转


下一篇:@PathVariable