Comment faire correspondre un Spring @RequestMapping ayant une @pathVariable contenant «/»?

Je suis en train de faire la demande suivante du client:

/search/hello%2Fthere/

où le terme de recherche “hello / there” a été codé en URL.

Sur le serveur, j’essaie de faire correspondre cette URL à l’aide du mappage de demande suivant:

 @RequestMapping("/search/{searchTerm}/") public Map searchWithSearchTerm(@PathVariable Ssortingng searchTerm) { // more code here } 

Mais je reçois l’erreur 404 sur le serveur, car je n’ai aucune correspondance pour l’URL. J’ai remarqué que l’URL est décodée avant que Spring ne la reçoive. Par conséquent, tente de faire correspondre / search / hello / there qui ne correspond à rien.

J’ai trouvé une Jira liée à ce problème ici: http://jira.springframework.org/browse/SPR-6780. Mais je ne sais toujours pas comment résoudre mon problème.

Des idées?

Merci

Il n’y a pas de bonne façon de le faire (sans traiter avec HttpServletResponse ). Vous pouvez faire quelque chose comme ça:

 @RequestMapping("/search/**") public Map searchWithSearchTerm(HttpServletRequest request) { // Don't repeat a pattern Ssortingng pattern = (Ssortingng) request.getAtsortingbute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE); Ssortingng searchTerm = new AntPathMatcher().extractPathWithinPattern(pattern, request.getServletPath()); ... }