@RequestMapping注解的作用和示例

@RequestMapping注解是Spring框架中常用的注解之一,用于将请求映射到Controller中的方法。通过在Controller的方法上使用@RequestMapping注解,可以指定处理哪些请求,并定义请求的URL路径、HTTP请求方法、请求参数等属性。

下面是一个使用@RequestMapping注解的示例:

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    public String userList(Model model) {
        List<User> userList = userService.findAll();
        model.addAttribute("userList", userList);
        return "userList";
    }

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addUser(@ModelAttribute("user") User user) {
        userService.save(user);
        return "redirect:/user/list";
    }
}

在上面的示例中,使用@Controller注解声明了一个名为UserController的类,并使用@RequestMapping注解标记了类级别的请求路径为”/user”。

接着,在方法userList()上使用@RequestMapping注解,定义了一个GET请求的URL路径为”/list”。

当请求该路径时,会调用userList()方法并返回一个名为”userList”的模板页面,并向模板中添加名为”userList”的模型属性,该属性的值为userService.findAll()的返回值。

在方法addUser()上,使用@RequestMapping注解定义了一个POST请求的URL路径为”/add”。当请求该路径时,会调用addUser()方法,将请求体中的用户信息保存到数据库中,并将请求重定向到”/user/list”路径。

需要注意的是,@RequestMapping注解的value属性可以接受一个字符串数组,可以定义多个请求路径,用于处理多个请求。

同时,@RequestMapping注解还有其他的属性,如method属性用于定义请求的HTTP方法,params属性用于定义请求的参数,headers属性用于定义请求的头信息等。可以根据实际需要进行灵活配置。