我把网站从 Spring3 升到 Spring5 了, 大体上都 OK, 就是有个小坑, 之前 dispatcher 的 url-partten 设的是*.do, 然后 Controller 里面写 RequestMapping 大概是这样的:
@RequestMapping(value = "/task/getDetail") 或者: @RequestMapping(value = "/task/getDetail.do")
实际上无论后面加不加那个.do, 都能访问到, 都可以匹配上自动处理, 所以代码里两种都有写, 但是到 Spring5, 前面那个写法突然就不行了, 必须要后面严格加上.do 才能匹配.
有哪位大神知道是哪里的设置在控制这个行为吗? 还是必须只能全部明确改成加.do 才行了? 谢谢!
1
shanghai1943 2021-04-25 12:15:45 +08:00 2
|
2
shanghai1943 2021-04-25 12:27:43 +08:00
其实就是在配置文件里加上 spring.mvc.pathmatch.use-suffix-pattern=true 就行了。。这样你的 controller 里的方法本来支持 /task/getDetail 访问的,加上配置后就可以支持任意后缀访问了 /task/getDetail.xxxx
|
3
yesterdaysun OP @shanghai1943 感谢! 确实是这个配置, Spring5.3 把这个默认设为 false 了, 怪我没仔细看迁移文档, 就把版本号一改了事了.
https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-5.x https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann-requestmapping-suffix-pattern-match |
4
gaius 2021-04-26 10:35:57 +08:00
3-5 跨度不小哇
|