我有一个Java / Spring Web应用程序。
显示视图的控制器代码如下所示:
@RequestMapping(value = { "showmessage/{messageId}" }, method = RequestMethod.GET)
public ModelAndView viewMessage(Model model, @PathVariable("messageId") Integer messageId) throws Exception {
/* do stuff */
return new ModelAndView("show-message","message",message);
}
显示show-message.jsp
文件的内容。
问题是,show-message.jsp
文件正在尝试加载myapp.WAR
文件中的资源...例如......
/resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js
浏览器报告无法从此网址加载此内容...
http://localhost:8080/myapp/showmessage/resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js
...因为资源实际上就在这里......
http://localhost:8080/myapp/resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js
如果我从" resources / dist /... 34更改JSP中的资源行;到SLASH" / resources / dist /..."仍然无法正常工作,因为它试图加载...
http://localhost:8080/resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js
......然后失败了。
我的应用程序出了什么问题,我该如何使用?
答案 0 :(得分:1)
在您的JSP中,您最有可能使用相对href
值,例如:
<scripts src="resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js"></script>
浏览器会根据您的showmessage/{messageId}
注释针对当前网址@RequestMapping
解析它。
尝试为脚本指定绝对URL。由于您有JSP,因此可以使用<c:url>。
<scripts src="<c:url value="/resources/dist/js/jquery/jquery-validate-1.17.0/jquery.validate.js"/>"></script>