我的Web应用程序中的许多页面都具有以下结构。我想在页面代码之前和之后使用固定代码创建一个模板页面,然后将我的代码用于每个不同的页面。问题是我应该div在不同的文件中剪切。
div
<!-- fixed jsp code <header> <imports> ... <div id="some-fixes-divs-inside"> --> page code <!-- fixed jsp code </div> <other> <footer> -->
我知道的唯一方法就是这样,但是我认为削减divs 并不是一个好习惯:
<jsp:include page="fixed-jsp-code-head.jsp" /> my page code <jsp:include page="fixed-jsp-code-footer.jsp" />
Q1:在jsp或任何其他框架中是否有任何指令或其他东西可以做到这一点? 问题2:如果第一个问题不存在,我的解决方案是否是错误的做法?
Q1:在jsp或任何其他框架中是否有任何指令或其他东西可以做到这一点?
问题2:如果第一个问题不存在,我的解决方案是否是错误的做法?
编辑: 我想知道<import>mycode</import>模板中是否有任何指令想要包含所有代码页脚和页眉,并且不要div在页眉中打开相同的代码并在页脚中将其关闭,然后将我的代码放入模板中。
<import>mycode</import>
您也可以使用Apache Tiles。它是一个模板组成框架。像这样。
首先,定义一个模板:
<definition name="myapp.homepage" template="/layouts/classic.jsp"> <put-attribute name="header" value="/tiles/banner.jsp" /> <put-attribute name="menu" value="/tiles/common_menu.jsp" /> <put-attribute name="body" value="/tiles/home_body.jsp" /> <put-attribute name="footer" value="/tiles/credits.jsp" /> </definition>
然后在代码中使用它:
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> <table> <tr> <td colspan="2"> <tiles:insertAttribute name="header" /> </td> </tr> <tr> <td> <tiles:insertAttribute name="menu" /> </td> <td> <tiles:insertAttribute name="body" /> </td> </tr> <tr> <td colspan="2"> <tiles:insertAttribute name="footer" /> </td> </tr> </table>