@RequestMapping контроллеры и динамические URL

Я хотел бы использовать Spring MVC @RequestMapping аннотация для подключения моего контроллера к запросам таким образом:

@RequestMapping(method = RequestMethod.GET, value="/prod/{value:.+}/show")
 public String getProduct(
        @PathVariable("value") String value, 
        ModelMap modelMap, HttpServletRequest request, HttpServletResponse response) { 
        ...
 }

и когда запрос будет

(..)/prod/foo/show

моя переменная значения будет иметь foo

и когда запрос будет

(..)/prod/foo/bar/show

моя переменная значения будет иметь foo/bar так далее

Есть ли способ сделать это? Какие @RequestMapping подстановочные знаки поддерживаются?

2 ответа

Вы можете использовать регулярные выражения. Все, хотя вам, возможно, придется убежать. Проверьте этот билет JIRA.

Если я хорошо вас понял, вам нужно передать, например, в контроллер строку, которая содержит какой-то дикий символ. Когда вы получите эту строку на контроллере, вы просто найдете значения перед вашим диким символом.

Такое поведение имеет смысл, так как вы не можете добавить "." или "/", "#" в URL. Если вы используете бесплатный маркер, вы можете сделать это с помощью? Url:http://freemarker.sourceforge.net/docs/ref_builtins_string.html#ref_builtin_url

Кроме того, точка ".", Как вы можете видеть здесь: http://www.de December.com/html/spec/esccodes.html, не имеет шестнадцатеричного эквивалентного кода ASCII, поэтому вам придется изменить его из кода. быть чем-то вроде "#" для передачи из представления в контроллер.

Другие вопросы по тегам