I am having following URL
http://context_path/info/abc/def
which gets converted like
http://context_path/info/abc%2Fdef
Where as my controller mapping is:
@RequestMapping(value = "/info/{id}", method = RequestMethod.GET)
here 'id' contains forward slash (/). So when I hit the URL I get 400 Bad Request.
I know the possible solutions
- Setting tomcat to allow forward slash.
- Use URL encoding.
- Use of
@RequestParam
instead of@PathVariable
.
But above solution are not possible for me.
Q. Is there any other solution like (using regular expression or changing the mapping or anything else) to the problem ? Also how the tomcat treats other special characters ('.' , ''' , ':' , ',') correctly and controller gets hit but not for '/'.
Tried but not working :
1) @RequestMapping(value = "/info/{id:.*}", method = RequestMethod.GET)
2) @RequestMapping(value = "/info/{id}/**", method = RequestMethod.GET)
3) @RequestMapping(value = "/info/**", method = RequestMethod.GET)