【发布时间】:2020-08-14 12:44:49
【问题描述】:
假设你有一个 Spring MVC 控制器,类似这样的
@Controller
public class RestController {
@GetMapping(value = "/test")
public @ResponseBody Test getTestData(...) {
// console log path to controller: http://localhost:80/app/test
return testData;
}
}
是否可以从控制器内部记录/打印到它的 url?在上面的示例中,输出类似于https://localhost:80/app/test
使用 servlet 中的 .getRequestUrl 行为不正确。
【问题讨论】:
-
"使用 servlet 中的
.getRequestUrl行为不正确。" - 实际和预期的输出是什么? -
不确定,你要实现什么,你可以从请求中获取服务器ip,你应该知道应用程序/上下文名称,你知道调用的api,为什么不能创建所需的网址
-
您可以将常量作为注释值传递。你可以基于几个常量来构造 URL,比如 (domain + restBasePath + instancePath(subPath))... Spring 无法决定你的绝对路径,你应该比它更了解相对路径。
-
@Turing85 和
.getRequestUrl我得到了到类似http://localhost:80/WEB-INF/view/.../test.jsp的jsp 的链接,这不是我想要的。我想要控制器的链接。 -
您的控制器在示例代码中没有设置任何路径... getMapping 本身有一个映射...
标签: java spring model-view-controller