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变量,但是没有人试过不带这个变量,也没有人说为什么一定要带。目前还没完全搞懂。

原文地址:https://www.cnblogs.com/mosakashaka/p/12609162.html