springboot controller 参数映射不了的问题

问题描述:

最近遇到一个springboot controller 参数映射不了的问题,一直报错说主键不能为空,但是我明明已经传了主键id和操作人id等必传字段。

我的controller接口如下:

@PutMapping("/update")
CommonResult<Boolean> update(@Valid UpdateReqDTO updateReqDTO){
   
   
	// 更新操作
}

我的参数VO类如下:

### Spring BootController映射地址注解使用方法 在 Spring Boot 中,`@Controller` 和 `@RestController` 是常用的控制器注解,它们通过路径映射注解来定义 HTTP 请求的处理逻辑。以下是关于映射地址注解的具体说明和示例。 #### 级别的路径映射 可以使用 `@RequestMapping` 或其快捷方式(如 `@GetMapping`, `@PostMapping` 等)在级别设置基础 URL 路径。这会作为该控制器下所有方法的基础路径[^1]。 ```java @RestController @RequestMapping("/api/v1") // 定义全局前缀路径 public class ExampleController { @GetMapping("/hello") // 实际访问路径为 /api/v1/hello public String sayHello() { return "Hello, World!"; } } ``` #### 方法级别的路径映射 对于具体的方法,可以通过 `@RequestMapping` 及其变体(如 `@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping` 等)进一步细化请求路径和 HTTP 方法型。 ##### 示例 1:基本 GET 请求 ```java @GetMapping("/greet/{name}") // 支持路径变量 {name} public String greet(@PathVariable String name) { return "Greetings, " + name; } ``` ##### 示例 2:POST 请求并接收 JSON 数据 ```java @PostMapping("/create") public ResponseEntity<String> createResource(@RequestBody MyEntity entity) { // 处理实体对象 logic here... return new ResponseEntity<>("Created", HttpStatus.CREATED); } ``` ##### 示例 3:带查询参数请求 ```java @GetMapping("/search") public List<MyEntity> searchEntities(@RequestParam(required = false) String keyword) { if (keyword != null && !keyword.isEmpty()) { // 执行基于关键词的搜索逻辑 } else { // 返回默认数据集 } return Collections.emptyList(); } ``` #### 综合应用 当需要更复杂的路径配置时,可以在和方法面组合使用这些注解: ```java @RestController @RequestMapping("/users") // 基础路径 public class UserController { @GetMapping("/{id}") // 动态获取单个用户信息 public User getUserById(@PathVariable Long id) { // 查询数据库返回对应 ID 用户的信息 return new User(id, "John Doe"); } @PostMapping("") // 创建新用户资源 public ResponseEntity<User> createUser(@RequestBody User user) { // 存储到数据库后返回创建成功的状态码 return new ResponseEntity<>(user, HttpStatus.CREATED); } } ``` 以上展示了如何利用不同型的路径映射注解实现灵活的功能设计,并支持 RESTful 风格接口开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值