获取Spring MVC相对路径

时间:2010-06-22 13:16:10

标签: java javascript jsp netbeans spring-mvc

我正在使用 Jboss Netbeans 在Windows上创建 Spring MVC Web应用程序。 它在http://localhost/myapplication/

上运行

我的项目路径是D:\ Myapplication \

我的JSP视图位于D:\ Myapplication \ web \ jsp \

我的 Javascripts 位于D:\ Myapplication \ web \ js \

控制器位于D:\ Myapplication \ web \ src \ java \ controller \

我创建了1个需要在javascript位置创建HTML文件的控制器,即D:\ Myapplication \ web \ js \

我正在使用Jquery.sheet创建一个Web电子表格。 我想使用这个HTML来加载Jquery.sheet我只想要存储在JAVASCRIPT位置的那个HTML的相对URL。

2 个答案:

答案 0 :(得分:1)

这取决于执行jQuery.sheet的页面的请求URL。

首先在浏览器地址栏中检查使用jQuery.sheet的网页的绝对URL。它可能是例如http://localhost/myapplication/jsp/page.jsp

然后在浏览器地址栏中检查/测试生成的HTML文件的绝对URL。它可能是例如http://localhost/myapplication/js/generated.html

两者的公共路径只是一个文件夹级别:../,最终会在http://localhost/myapplication。从那里你可以通过js/generated.html访问JS文件夹和生成的HTML文件。

总结一下,您需要的相对网址是../js/generated.html


更新:根据评论,您发现您已经在完全不同的视角中阐述了您的问题。您在客户端透视图中讨论了URL,而实际上是指服务器端的本地磁盘文件系统路径。在这种情况下,只需使用ServletContext#getRealPath()将相对Web路径转换为绝对磁盘文件系统路径。

String relativeWebPath = "/js";
String absoluteDiskPath = servletContext.getRealPath(relativeWebPath);
File generatedHtml = new File(absoluteDiskPath, "generated.html");

答案 1 :(得分:0)

检查解决方案

public User getCurrentUser(@CurrentUser UserPrincipal userPrincipal, HttpServletRequest request) {
    String url = request.getRequestURL().toString();
    String queryString = request.getQueryString();
    String uri = request.getRequestURI();

    return userRepository.findById(userPrincipal.getId())
            .orElseThrow(() -> new ResourceNotFoundException("User", "id", userPrincipal.getId()));
}