Spring @MatrixParam不识别问题
这段代码调了半天,就是走不到方法里去:
@RestController
@RequestMapping("u")
public class TbUserController {
@Autowired
TbUserMapper tMapper;
@GetMapping("s")
public TbUser GetUserById(@MatrixVariable int id) {
System.out.println("input id:" + id);
TbUser u = tMapper.selectByPrimaryKey(id);
return u;
}
}
如果用/u/s
,会提示缺少MatrixVariable id;如果用/u/s;id=1
,则不报错了,但是方法也没有执行。
后面发现,必须要有一个PathVariable
:
@GetMapping("s/{i}")
public TbUser GetUserById(@MatrixVariable int id) {
System.out.println("input id:" + id);
TbUser u = tMapper.selectByPrimaryKey(id);
return u;
}
然后用/u/s/abc;id=2
这样的请求就可以请求成功了。其中的abc
可以是任何值。
很奇怪,在网上搜索所有的示例的确都有这个Path变量,但是没有人试过不带这个变量,也没有人说为什么一定要带。目前还没完全搞懂。