我正在使用 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。
答案 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()));
}