@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, поэтому вам придется изменить его из кода. быть чем-то вроде "#" для передачи из представления в контроллер.