我试图将 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)
在后端打印出来。
您可以执行以下操作;
@RequestMapping("/addAddress/**")
public String addAddress(HttpServletRequest request) {
String fullUrl = request.getRequestURL().toString();
String url = fullUrl.split("/addAddress/")[1];
System.out.println(url);
return url;
}
Run Code Online (Sandbox Code Playgroud)
这@PathVariable是不可行的,因为/字符破坏了您正在寻找的行为,除非您编码/解码,但我觉得这对于端点用户和后端来说都是一种更简单的方法。
此外,这不会获取请求查询部分,例如
?input=user,为此您可以添加此逻辑
| 归档时间: |
|
| 查看次数: |
5828 次 |
| 最近记录: |