我有每个jsp文件中包含的常见css和js文件。
那么在每个页面中包含它们的最佳做法是什么?
我曾经使用<%@ include file="header.jsp" %>
,但我想知道这是否是最好和最干净的方法。
答案 0 :(得分:3)
我喜欢使用片段,它们是JSP支持的标准,因此不需要其他依赖项。正如您将看到的那样,它将带来许多其他好处。
创建标记(parentpage.tag):
<%@tag description="Base page" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@attribute name="extra_css" fragment="true" %>
<%@attribute name="footer" fragment="true" %>
<%@attribute name="header" fragment="true" %>
<html>
<head> ....
// insert css that is needed for every page
<jsp:invoke fragment="extra_css"/>
<jsp:invoke fragment="header"/>
<jsp:doBody/>
<jsp:invoke fragment="footer"/>
然后,您创建从此标记继承的单个页面
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:parentpage>
<jsp:attribute name="extra_css">
// custom css for this page
</jsp:attribute>
<jsp:attribute name="footer">
// footer content
</jsp:attribute>
<jsp:body>
// body content
</jsp:body>
</t:parentpage>
答案 1 :(得分:2)
您可以在web.xml
:
<jsp-config>
<jsp-property-group>
<display-name>Display</display-name>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<scripting-invalid>false</scripting-invalid>
<is-xml>false</is-xml>
<include-prelude>/template/header.jsp</include-prelude><!-- header -->
<include-coda>/template/footer.jsp</include-coda><!-- footer -->
</jsp-property-group>
</jsp-config>
查看更多here
答案 2 :(得分:2)
是的!在一个jsp中包含所有css和js defination,然后在所有pages / jsp中包含该jsp,这是一个很好的选择。
当您使用spring时,我建议您使用tile https://tiles.apache.org/,这是制作标准布局的更好方法,然后在您的所有jsp中使用该布局。
答案 3 :(得分:1)
最佳解决方案是使用JSP标记文件。 它允许使用标记文件封装可重用内容:Java doc ref
以下是一个很好的答案:https://stackoverflow.com/a/3257426/1140748
答案 4 :(得分:1)
将JavaScript和CSS设为外部。
在现实世界中使用外部文件通常会产生更快的页面,因为浏览器会缓存JavaScript和CSS文件。每次请求HTML文档时,都会下载HTML文档中内联的JavaScript和CSS。这减少了所需的HTTP请求数,但增加了HTML文档的大小。另一方面,如果JavaScript和CSS位于浏览器缓存的外部文件中,则HTML文档的大小会减少,而不会增加HTTP请求的数量。
请点击以下链接获取更多相关信息:
&#34; https://developer.yahoo.com/performance/rules.html&#34;
&#34; include external java script file in jsp page &#34;