【发布时间】:2015-10-03 22:36:59
【问题描述】:
我需要处理如下请求:
www.example.com/show/abcd/efg?name=alex&family=moore (does not work)
www.example.com/show/abcdefg?name=alex&family=moore (works)
www.example.com/show/abcd-efg?name=alex&family=moore (works)
它应该接受位于www.example.com/show/ 和? 之间的值中的任何类型的字符。请注意,将位于其中的值将是单个值而不是操作的名称。
例如:/show/abcd/efg 和 /show/lkikf?name=Jack,其中第一个请求应该将用户重定向到页面 abcd/efg(因为那是一个名称),第二个请求应该将用户重定向到页面 lkikf 以及值参数名称。
我有以下控制器来处理它,但问题是当我在地址中有 / 时控制器无法处理它。
@RequestMapping(value = "/{mystring:.*}", method = RequestMethod.GET)
public String handleReqShow(
@PathVariable String mystring,
@RequestParam(required = false) String name,
@RequestParam(required = false) String family, Model model) {
我使用了以下不起作用的正则表达式。
/^[ A-Za-z0-9_@./#&+-]*$/
【问题讨论】:
-
你的春季版本是什么? Jira SPR-11101 是关于影响包含在 3.2.8 和 4.0.2 中修复的正斜杠的 URL 的问题 - 不确定是否相关...
标签: java regex spring spring-mvc