我正在开发一个struts网站。我的文件夹结构如下:
现在,我有一个jsp页面register.jsp,我想在其中添加jquery.validate.js文件。我已按照以下链接提出建议:
Can not include javascript file from WEB-INF directory in JSP.
我的代码如下:
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Insert title here</title>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<script src="https://use.fontawesome.com/0c2573c7d6.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script type="text/javascript" src='<c:url value="/WEB-INF/scripts/jquery.validate.js"/>'></script>
上面的代码生成了以下html:
<script type="text/javascript" src='/LoginApp/WEB-INF/scripts/jquery.validate.js'></script>
jsp文件无法访问javascript文件jquery.validate.js。如何从我的jsp文件中访问它?
此致 坦维尔
答案 0 :(得分:5)
您应该将文件jquery.validate.js
移到WEB-INF
webapp/scripts
之外,因为它在某种程度上是受保护的目录,因为此目录中的资源默认不公开,然后您就可以访问它使用:
<script type="text/javascript" src='<c:url value="/scripts/jquery.validate.js"/>'></script>
答案 1 :(得分:4)
WEB-INF无法公开访问,您的HTML页面无法访问WEB-INF中的JS文件。
最好的方法可能是将您的JS文件移到WEB-INF之外,并将链接更改为该位置。
另一种方法是在html中使用JS文件的内容生成<script>
标记:
<script>
<%@include file="/WEB-INF/scripts/jquery.validate.js" %>
</script>
请注意,您正在失去浏览器缓存的优势,因为您每次都会在HTML中包含JS文件的内容。