我想使用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
通配符?
答案 0 :(得分:0)
您可以使用正则表达式。尽管你可能不得不做一些逃避。查看this jira ticket。
答案 1 :(得分:0)
如果我理解你,你需要从视图传递给控制器一个String,例如,包含一些狂野的角色。 当您在控制器上收到此字符串时,您将只能找到狂野字符之前的值。
此行为有意义,因为您无法添加“。”或“/”,“#”进入网址。 如果您使用的是freemarker,可以使用?url:http://freemarker.sourceforge.net/docs/ref_builtins_string.html#ref_builtin_url
此外,您可以在此处看到“。”,点:http://www.december.com/html/spec/esccodes.html 没有ASCII十六进制等效代码,因此您需要将其从代码更改为类似“#”的内容,从视图传递到控制器。