java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springmvc注解

Springmvc常用的注解代码示例

作者:小王不爱笑132

本文介绍了SpringMVC中常用的控制器和请求映射注解,包括@Controller、@RequestMapping等,以及请求参数绑定注解,如@RequestParam、@RequestBody等,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧

一、控制器与请求映射注解

1. @Controller

@Controller // 标识此类为控制器
@RequestMapping("/user")
public class UserController {
    // 控制器方法...
}

2. @RequestMapping

@Controller
@RequestMapping("/user") // 类级路径(基础路径)
public class UserController {
    // 方法级路径,完整 URL 为 /user/save
    @RequestMapping(
        value = "/save", 
        method = RequestMethod.POST, // 限制请求方式为 POST
        params = "username" // 要求请求必须携带 username 参数
    )
    public String save() {
        System.out.println("用户保存成功");
        return "success";
    }
}

二、请求参数绑定注解

1. @RequestParam

@RequestMapping("/find")
public String find(
    @RequestParam(
        value = "name", // 映射请求参数名(前端传递的参数名为 name)
        required = false, // 非必须传递,默认值为 true
        defaultValue = "guest" // 无参数时的默认值
    ) String username
) {
    System.out.println("用户名:" + username);
    return "success";
}

2. @RequestBody

@RequestMapping("/getBody")
public String getBody(@RequestBody String requestBody) {
    System.out.println("请求体内容:" + requestBody); // 输出原始请求数据
    return "success";
}

3. @RequestHeader

@RequestMapping("/getHeader")
public String getHeader(@RequestHeader("User-Agent") String userAgent) {
    System.out.println("浏览器信息:" + userAgent); // 输出浏览器类型信息
    return "success";
}

4. @CookieValue

@RequestMapping("/getCookie")
public String getCookie(@CookieValue("JSESSIONID") String sessionId) {
    System.out.println("会话 ID:" + sessionId); // 输出当前会话的 JSESSIONID
    return "success";
}

5. @DateTimeFormat

public class User {
    private String username;
    // 指定日期格式为 yyyy-MM-dd HH:mm:ss
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;
    // getter/setter 省略
}
@RequestMapping("/saveUser")
public String saveUser(User user) {
    System.out.println("生日:" + user.getBirthday()); // 自动转换为 Date 类型
    return "success";
}

三、其他常用注解(扩展)

1. @PathVariable(REST 风格)

@RequestMapping("/user/{id}")
public String getUserById(@PathVariable("id") Integer userId) {
    System.out.println("用户 ID:" + userId); // 获取路径中的 id 参数
    return "success";
}

2. @ResponseBody

@RequestMapping("/getJson")
@ResponseBody // 返回 JSON 数据,而非视图
public User getJson() {
    User user = new User();
    user.setUsername("张三");
    return user; // 需配合 Jackson 依赖,自动转换为 JSON
}

四、注解使用注意事项

  1. 路径冲突@RequestMapping 标注的路径需唯一,避免不同方法映射同一 URL。
  2. 参数校验@RequestParam 的 required=true 时,若前端未传参数会抛出异常,需注意处理。
  3. 日期转换优先级:自定义类型转换器(实现 Converter 接口)优先级高于 @DateTimeFormat
  4. 配置支持:所有注解需在 Spring 配置文件中开启 <mvc:annotation-driven/> 才能生效(自动注册处理器映射器和适配器)。

到此这篇关于Springmvc常用的注解代码示例的文章就介绍到这了,更多相关Springmvc注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文