Issue
Within the @Controller
of a search engine:
@RequestMapping(value = "/search/{query}", method = RequestMethod.GET)
public String search(@PathVariable String query) {}
If a user wants to search /search/w?rld
(which should match world, warld, whrld, etc.), the variable query
equals w
, because of the question mark which indicated a GET var.
I tried "/search/{query:.+}"
, but still doesn't work.
Any idea how to solve that problem?
Solution
The problem is not in the Spring configuration. It's in the URL. The question mark is the symbol indicating the start of the query String. If it's part of the URL, it must be encoded:
/search/w%3Frld
Answered By - JB Nizet
Answer Checked By - Candace Johnson (JavaFixing Volunteer)