SpringMVC常用注解及作用
1、@Controller
@Controller注解在类上,表面这个类是SpringMVC里的Controller,将其声明为Spring的一个Bean,Dispatch Servlet会自动扫描注解了此注解的类,并将Web请求映射到注解了@RequestMapping的方法上,需要注意的是,在Spring MVC声明控制器Bean的时候,只能使用@Controller
2、RequestMapping
- @RequestMapping注解是用来映射Web请求(访问路径和参数)、处理类和方法的,它可以注解在类和方法上,注解在方法上的@RequestMapping路径会继承注解在类上的路劲,
- @RequestMapping支持Servlet的request和response作为参数,也支持对他们的媒体类型进行配置
@Controller //声明此类是一个控制器
@RequestMapping("/anno") //映射此类的访问路径是 /anno
public class DemoAnnoController {}
3、@ResponseBody
- @ResponseBody支持返回值放在response体内,而不是返回一个页面,Ajax的异步访问程序,可以以此注解返回的是数据而不是返回页面,次注解在返回值或方法上。
@ResponseBody
public String index(HttpServletRequest request, HttpServletResponse
response){
return "url: " + request.getRequestURL() +" can access";
}
4、@RequestBody
- @RequestBody允许request的参数在request体中,而不是在直接链接在地址后面。此注解放在参数
- @RequestBody的作用其实是将json格式的数据转为java对象
//前端
$.ajax({
data:{"username":"tom","address":"北京"}
})
@RequestMapping("/insert")
public void insert(@RequestBody User user){}
- @PathVariable 用来接收路径参数,如/news/001,可接收001作为参数,此注解放置在参数前。
@RequestMapping("/show/{id}/{name}")
public String show(@PathVariable("id") Long ids,@PathVariable("name") String
names){
return "hello";
}
6、 @RestController
- @RestController是一个组合注解,组合了@Controller和@ResponseBody,意味着当只开发一个和页面交互数据的控制的时候,需要使用此注解。 若没有此注解,要想实现上述功能,则需自己在代码中加@Controller和@ResponseBody两个注解。