c语言编程笔录

首页 >   > 笔记大全

笔记大全

JavaWeb中常用的请求传参注解有哪些

更新时间:2023-11-07

1. @RequestParam

@RequestParam注解用于从请求中获取单个或多个参数的值。它可以用在方法的参数上,也可以用在方法的参数类型上。

@RequestMapping("/getUser")
public User getUser(@RequestParam("id") int id) {
    // ...
}

上面的例子中,@RequestParam注解会将请求中名为"id"的参数值赋给方法的参数"id"。如果请求中没有"name"参数,而方法的参数"id"又设置了默认值,那么可以使用required属性将参数设为可选。

@RequestMapping("/getUser")
public User getUser(@RequestParam(value = "name", required = false, defaultValue = "guest") String name) {
    // ...
}

2. @PathVariable

@PathVariable注解用于从请求路径中获取参数的值。它可以用在方法的参数上,也可以用在方法的参数类型上。

@RequestMapping("/users/{id}")
public User getUser(@PathVariable("id") int id) {
    // ...
}

上面的例子中,请求路径为"/users/123",@PathVariable注解将会将路径中的"123"赋给方法的参数"id"。

@RequestMapping("/users/{name}")
public User getUser(@PathVariable String name) {
    // ...
}

上面的例子中,请求路径为"/users/john",@PathVariable注解会将路径中的"john"赋给方法的参数"name"。

3. @RequestBody

@RequestBody注解用于将请求的内容体解析为方法参数类型的对象。

@RequestMapping(value = "/createUser", method = RequestMethod.POST)
public User createUser(@RequestBody User user) {
    // ...
}

上面的例子中,请求的内容体应该包含一个User对象的JSON表示。@RequestBody注解会自动将请求的JSON解析为User对象,并将其赋给方法的参数"user"。

4. @RequestHeader

@RequestHeader注解用于从请求头中获取参数的值。

@RequestMapping("/getUser")
public User getUser(@RequestHeader("User-Agent") String userAgent) {
    // ...
}

上面的例子中,@RequestHeader注解将会从请求头中获取名为"User-Agent"的参数值,并将其赋给方法的参数"userAgent"。

@RequestMapping("/getUser")
public User getUser(@RequestHeader(value = "Accept-Language", defaultValue = "en-US") String language) {
    // ...
}

上面的例子中,如果请求头中没有"Accept-Language"参数,@RequestHeader注解会将默认值"en-US"赋给方法的参数"language"。

总结一下,在JavaWeb中常用的请求传参注解有@RequestParam、@PathVariable、@RequestBody和@RequestHeader。这些注解分别用于从请求中获取参数的值、从请求路径中获取参数的值、将请求的内容体解析为对象和从请求头中获取参数的值。通过合理的使用这些注解,可以使代码更加简洁和可读,同时增强了程序的可扩展性和灵活性。