28 lines
885 B
Markdown
28 lines
885 B
Markdown
|
问题 本质原因
|
|||
|
访问 POST 接口用 GET,路径又模糊匹配 Spring 把你写的 testMethod 误当成其他接口的参数,比如 {id},尝试类型转换失败
|
|||
|
预期 405 报错却看到类型转换失败 是路径匹配到了别的接口,没走到你定义的方法
|
|||
|
解决办法 用正确的请求方式 / 添加明确前缀 / 避免通配路径冲突
|
|||
|
|
|||
|
现在有这个一个方法
|
|||
|
|
|||
|
```java
|
|||
|
@GetMapping("{id}")
|
|||
|
public Result<Course> queryById(@PathVariable("id") Integer id) {
|
|||
|
return Result.success(courseService.getById(id));
|
|||
|
}
|
|||
|
```
|
|||
|
|
|||
|
我又写了一个方法
|
|||
|
```java
|
|||
|
@PostMapping("/testMethod")
|
|||
|
public void testMethod(@RequestParam(name = "page") Long pageNum){
|
|||
|
|
|||
|
}
|
|||
|
```
|
|||
|
然后我请求
|
|||
|
```java
|
|||
|
GET http://localhost:8084/bs/courses/testMethod?page=1
|
|||
|
```
|
|||
|
请求其实走到了上面
|
|||
|
|
|||
|
Spring 的路径匹配是优先按 URL 结构匹配,方法类型(GET/POST)其次。
|