关于SpringMVC @RequestMapping和 @PathVariable 的一个疑问? 400 报错
在springmvc注解的@RequestMapping("/username/{username}/userid/{userid}")如何处理默认值的情况,比如我在发送请求的时候,userid有时候是没有的,所以导到了不能匹配这个action
http://localhost:8080/spc/movie/username/winzip/userid/就不能匹配上面的请求:
http://localhost:8080/spc/movie/username/winzip/userid/33而这个才可以匹配。有没有一种
如果没有userid就取默认值 的处理办法;
http://localhost:8080/spc/movie?username=XXX&userid=XXX 参数放后面,跟就要加必填校验
简单来说不可以,原因就是你说的,因为如果少了PathVariable,URL就不一样了。
复杂一点来说Spring 用 AntPathMatcher 这个 class 来读取URL里面的PathVariable,你可以继承
AntPathMatcher 加入你自己需要的逻辑。
我觉得还是用 @RequestParam 比较简单
可以这样设计:比如请求为:
1:http://localhost:8080/mybatis/search/searchResultList/222/1/0
// @RequestMapping(value="/searchResultList/{condition}/{zhaiyaoStatu}/{classfiyStatu}",method={RequestMethod.GET})
// public String searchResultList2(@PathVariable String condition,@PathVariable String zhaiyaoStatu,@PathVariable String classfiyStatu)
2:http://localhost:8080/mybatis/search/searchResultList//1/0
一个对应一个就OK!测试通过!缺点就是多一个 “/”。嘿嘿!
######什么时候能像 @RequestParam(value="id", required=false) 或者 @MatrixVariable(required=true, defaultValue="1") 这样就好了!期待!!! ######版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。