【问题标题】:Getting Spring MVC Relative path获取 Spring MVC 相对路径
【发布时间】:2011-03-06 19:47:45
【问题描述】:

我正在使用 JbossNetbeans 在 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 创建一个网络电子表格。 我想使用这个 HTML 来加载 Jquery.sheet 为此我只想要那个 HTML 的相对 URL 存储在 JAVASCRIPT 位置。

【问题讨论】:

    标签: java javascript jsp netbeans spring-mvc


    【解决方案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");
    

    【讨论】:

    • 实际上我无法使用相对路径在localhost/myapplication/js 中创建 html 文件。我可以在 Windows 中硬编码路径并创建 html 文件。但我想以这样一种方式创建 HTML 文件,即该文件存储在 Windows 和 Linux 的 localhost/myapplication/js 文件夹中,并且应该可以轻松访问。然后我可以按照您的建议使用 HTML 文件的相对 URL。我的项目的执行路径是 C:\Program Files\NetBeans\NetBeans 6.8 谢谢。
    【解决方案2】:

    检查一下解决办法

    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()));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多