我需要处理如下请求:
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)
Run Code Online (Sandbox Code Playgroud)
它应该接受位于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) {
Run Code Online (Sandbox Code Playgroud)
我使用了以下正则表达式无法正常工作.
/^[ A-Za-z0-9_@./#&+-]*$/
Run Code Online (Sandbox Code Playgroud) 我试图将 URL 作为路径变量传递,但是当我输入 URL 作为参数并访问路由时,它返回错误。我希望在它作为参数传入路由后能够看到地址。
@RequestMapping("/addAddress/{address}")
public String addAddress(@PathVariable("address") String address) {
System.out.println("Address: "+address)
return address;
}
Run Code Online (Sandbox Code Playgroud)
例如,如果我输入 URL:
localhost:8080/addAddress/http://samplewebsite.com
Run Code Online (Sandbox Code Playgroud)
我应该看到
http://samplewebsite.com
Run Code Online (Sandbox Code Playgroud)
在后端打印出来。