# SpringMVC常用5种注解
SpringMVC是一个基于Java的实现MVC设计模式的请求驱动类型的轻量级Web框架,通过SpringMVC可以使项目的分层设计更加清晰,层与层之间的职责也更加明确,在SpringMVC中,注解是一个非常重要的特性,通过注解可以减少配置的工作量,使代码更加简洁和易于维护,本文将介绍SpringMVC中最常用的5种注解。
1. @Controller
@Controller是SpringMVC中用于标注控制器类的注解,在控制器类中,可以使用@RequestMapping注解来标注处理请求的方法,也可以使用@RequestParam注解来获取请求参数,还可以使用@ModelAttribute注解来处理模型数据。
@Controller public class UserController { @RequestMapping("/user") public String list(Model model) { List<User> users = userService.list(); model.addAttribute("users", users); return "userList"; } }
2. @RequestMapping
@RequestMapping是SpringMVC中用于标注处理请求的方法的注解,通过该注解可以指定请求的URL路径、请求的HTTP方法、请求头、请求参数等信息。
@Controller public class UserController { @RequestMapping(value = "/user", method = RequestMethod.GET) public String list(Model model) { List<User> users = userService.list(); model.addAttribute("users", users); return "userList"; } }
3. @RequestParam
@RequestParam是SpringMVC中用于获取请求参数的注解,通过该注解可以指定请求参数的名称、是否必需、默认值等信息。
@Controller public class UserController { @RequestMapping("/user") public String list(@RequestParam("username") String username, Model model) { List<User> users = userService.list(username); model.addAttribute("users", users); return "userList"; } }
4. @ModelAttribute
@ModelAttribute是SpringMVC中用于处理模型数据的注解,通过该注解可以将数据放入模型中,以便在视图中进行显示。
@Controller public class UserController { @ModelAttribute("user") public User getUser() { return new User(); } @RequestMapping("/user") public String create(@ModelAttribute("user") User user) { userService.save(user); return "userCreated"; } }
5. @SessionAttributes
@SessionAttributes是SpringMVC中用于将数据放入Session中的注解,通过该注解可以将数据放入Session中,以便在整个请求过程中都可以访问这些数据。
@Controller public class UserController { @SessionAttributes("user") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { User user = userService.check(username, password); if (user != null) { session.setAttribute("user", user); return "loginSuccess"; } else { return "loginFailed"; } } }