我使用IDEA开发了一个spring mvc应用程序。我将应用程序上下文设置为“/”,这样我就可以在不输入项目名称的情况下访问项目。但是,当我通过将.war放在tomcat / webapps下来部署它时,我必须添加项目名称来访问它。问题是我的网址设计是这样的:
JS:
$http.post('/validate', $scope.account)
控制器:
@RequestMapping(value = "/validate", method = RequestMethod.POST)
当我点击按钮时,我会得到这个:
Request URL:http://localhost:8080/validate
Request Method:POST
Status Code:404 Not Found
但我希望有一个类似http://localhost:8080/ {project name} / validate的网址。我怎样才能使它工作?有没有办法自动将项目名称添加到url,以便在以不同方式部署项目时不必进行任何更改?
答案 0 :(得分:0)
您可能希望使用当前上下文路径作为前缀来构建URL。
HttpServletRequest.getContextPath()
相关文件: http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html#getContextPath
答案 1 :(得分:0)
如果您有application.properties(如果没有在src / main / resources下创建一个),您可以添加:
server.contextPath={project name}
硬编码或从你的pom中获取它作为maven变量。
这样就会产生localhost:8080 / {project name} / validate。
答案 2 :(得分:0)
对于spring boot应用程序,如果您有application.properties(如果未在src / main / resources下创建一个),则可以添加:
server.servlet.context-path = / put_your_desired_path_name
示例: 如果以前的网址是http:// locahost:8080 / client / all 和server.servlet.context-path = / InvoiceSystem 然后新的网址将为http:// locahost:8080 / InvoiceSystem / client / all
答案 3 :(得分:0)
除ServerProperties.java外,我没有找到关于上下文路径的任何官方文档。