springmvc常用5种注解

admin 52 0

# 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";
        }
    }
}