使用: Apache Tomcat 6 Spring 4.0
我们说我有一个孩子"包含指向外部javascript文件的链接的JSP文件:
然后我将child.jsp包含在我父JSP文件的中间,生成的HTML将类似于下面的内容:
<html>
<head></head>
<body>
<lotsOfHTML>
<!-- start injected JSP -->
<injectedHTML>
<script src="my-external-file.js"></script>
<!-- end injected JSP -->
<evenMoreHTML>
</body>
</html>
我想要的是:
<html>
<head></head>
<body>
<lotsOfHTML>
<!-- start injected JSP -->
<injectedHTML>
<!-- end injected JSP -->
<evenMoreHTML>
<script src="my-external-file.js"></script> <-- Injected Javascript
</body>
</html>
澄清:
这就是我的JSP的样子:
index.jsp
include1.jsp
indclude2.jsp
index.jsp具有页面的内容,如标题等。 include1.jsp和include2.jsp包含我希望在我的页面上重用的小部件和其他组件之类的东西。这包括CSS和JavaScript库。
默认情况下,任何包含的外部CSS和JavaScript引用都将包含在页面中间。 我希望JavaScript库出现在包含includeX.jsp的页面底部。
我怎样才能做到这一点? 最坏的情况(?)是将JavaScript文件包含在HEAD中,但最好是在BODY标记的底部。
谢谢!
/ J
答案 0 :(得分:3)
这可以使用JSP标记文件来完成。例如:
<强>的index.jsp 强>
<%@ taglib prefix="my-tags" tagdir="/WEB-INF/tags" %>
<html>
<head>
<!-- Stuff goes here -->
</head>
<body>
<!-- Content goes here -->
<my-tags:javascript />
</body>
</html>
<强> javascript.tag 强>
<%@tag description="JavaScript libraries for all pages." pageEncoding="UTF-8"%>
<script type="text/javascript" src="/static/jquery.js"></script>
当Tomcat将index.jsp
处理成HTML时,标记文件的内容将被注入JSP。如果您不希望将JS注入页面,也可以将标记引用包装在条件EL评估中。