Spring MVC 中如何使用@RequestMapping 注解
使用@RequestMapping注解是Spring MVC中定义请求处理方法的一种方式。这个注解可以用在类级别或者方法级别,用来映射URL请求到相应的处理方法。
在类级别使用@RequestMapping注解
当在类上使用@RequestMapping注解时,这个注解会将所有方法级别上的@RequestMapping注解所定义的URL进行拼接。
@Controller
@RequestMapping("/users")
public class UserController {
@RequestMapping("/list")
public String listUsers(Model model) {
// 处理逻辑
return "list_users";
}
@RequestMapping("/create")
public String createUser(Model model) {
// 处理逻辑
return "create_user";
}
}上面的例子中,在UserController类上使用了@RequestMapping("/users")注解,而在方法级别上分别使用了@RequestMapping("/list")和@RequestMapping("/create")注解。因此,访问/list请求会被映射到listUsers方法进行处理,访问/create请求会被映射到createUser方法进行处理。
在方法级别使用@RequestMapping注解
当在方法上使用@RequestMapping注解时,可以通过这个注解来指定URL,还可以通过method属性来指定HTTP请求方法。
@Controller
@RequestMapping("/users")
public class UserController {
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String listUsers(Model model) {
// 处理逻辑
return "list_users";
}
@RequestMapping(value = "/create", method = RequestMethod.POST)
public String createUser(Model model) {
// 处理逻辑
return "create_user";
}
}上面的例子中,分别使用了@RequestParam注解来指定/list方法只能处理GET请求,/create方法只能处理POST请求。
处理路径变量和请求参数
使用@RequestMapping注解还可以处理路径变量和请求参数。
1. 处理路径变量:使用@PathVariable注解来获取路径中的变量。
@Controller
@RequestMapping("/users")
public class UserController {
@RequestMapping("/{id}")
public String getUser(@PathVariable("id") Long id, Model model) {
// 根据id查询用户
User user = userService.getUserById(id);
model.addAttribute("user", user);
return "user_detail";
}
}上面的例子中,请求/users/123会将123作为id参数传递给getUser方法。
2. 处理请求参数:使用@RequestParam注解来获取请求参数的值。
@Controller
@RequestMapping("/users")
public class UserController {
@RequestMapping(value = "/list", method = RequestMethod.GET)
public String listUsers(@RequestParam("page") int page, @RequestParam("size") int size, Model model) {
// 处理逻辑
List users = userService.getUsers(page, size);
model.addAttribute("users", users);
return "list_users";
}
} 上面的例子中,请求/users/list?page=1&size=10会将page和size参数的值分别传递给listUsers方法。
猜您想看
-
Django-oscar是怎样修改店铺名称
修改店铺名称D...
2023年05月22日 -
如何在Steam平台上使用游戏控制器?
如何在Stea...
2023年04月17日 -
如何在Steam上找到和加入其他玩家创建的游戏服务器?
如何在Stea...
2023年05月13日 -
如何在 CentOS 7 上配置 Samba 共享访问用户和权限?
CentOS ...
2023年04月24日 -
如何在宝塔中设置禁止目录访问
随着互联网的发...
2023年05月08日 -
如何在Docker中使用容器网络代理?
Docker中...
2023年04月16日