dav*_*ski 6 java thymeleaf spring-boot
我正在尝试创建我的路由,而不依赖于application.properties中的server.contextPath
这是一个例子:
@PreAuthorize("hasRole('ROLE_ADMIN')
@GetMapping("/dashboard/admin/list/param1/{param1}")
public String method(@PathVariable String param1, Model model, HttpServletRequest request) {
//Some stuff
String contextPath = request.getContextPath();
return contextPath + "/dashboard/admin/list";
}
Run Code Online (Sandbox Code Playgroud)
但正如预期的那样,由于添加了contextPath,因此找不到视图.
如果我像这样重定向:
String contextPath = request.getContextPath();
String redirect = contextPath + "/dashboard/admin/list";
return "redirect:/dashboard/admin/directorio/list";
Run Code Online (Sandbox Code Playgroud)
一切都很好,但有时我不需要重定向.
背后的想法是遵循流程在tomcat中部署为war文件,正如我在此链接中所要求的: 如何在application.properties中设置的情况下获取控制器中的上下文路径
所以问题是:是否可以在@GetMapping中添加一些参数来添加contextPath
更新1
我不确定你在问什么.
假设我从同一个项目中创建了两个war项目,名为webapp1和webapp2,我部署在我的tomcat服务器中.
我可以像这样访问这两个项目:
HTTP://本地主机:8080/webapp1 /仪表板/管理/列表/参数1/100
HTTP://本地主机:8080/webapp2的/仪表板/管理/列表/参数1/200
但是当我返回位于src/main/resources/templates/dashboard/admin/list.html中的百万富翁页面时,找不到页面(这是错误的),因为在方法中@GetMapping找不到contextPath可以是webapp1或webapp2.
我不想使用server.contextPath,因为在这种情况下,我认为你只能拥有一个名为server.contextPath的项目.
谢谢
小智 5
Spring 维护它的上下文路径,因此您不必担心。你的代码看起来不错。
你可以尝试什么。
尝试从 application.properties 文件中完全删除 server.contextPath 行。停止服务器清理和构建,重新启动服务器并再次启动应用程序。
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |