常用注解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¶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
}