Java JSP包含,导入前后代码
在我的web应用程序的许多页面中,我都有以下结构。我想在页面代码前后创建一个带有固定代码的模板页面,然后为每个不同的页面添加我的代码。问题是我应该在不同的文件中剪切Java JSP包含,导入前后代码,java,html,jsp,import,include,Java,Html,Jsp,Import,Include,在我的web应用程序的许多页面中,我都有以下结构。我想在页面代码前后创建一个带有固定代码的模板页面,然后为每个不同的页面添加我的代码。问题是我应该在不同的文件中剪切divs <!-- fixed jsp code <header> <imports> ... <div id="some-fixes-divs-inside"> --> page code <!-- fixed jsp code </div>
div
s
<!-- fixed jsp code
<header>
<imports> ...
<div id="some-fixes-divs-inside">
-->
page code
<!-- fixed jsp code
</div>
<other>
<footer>
-->
问题1:jsp或任何其他框架中是否有任何指令或东西可以做到这一点
问题2:如果第一个Q为否,我的解决方案是否是一种糟糕的做法
Edit:我想知道是否有类似于mycode
的指令在模板中包含所有代码页脚和页眉,不要在页眉中打开相同的div
,然后在页脚中关闭它,并将我的代码放在模板中
如果第一个Q为否,我的解决方案是一种糟糕的做法吗
在我看来,根据各自的功能分离JSP是一种很好的做法。这使得代码松散耦合。在将来,如果您必须更改页眉/页脚代码,您只需在一个位置进行更改,从而减少大量返工
问题1:jsp或任何其他框架中是否有任何指令或内容
这么做
在另一个jsp中包含jsp的标准方法是使用
(静态包含)或
(动态包含)
还可以使用JSTL标记
`<c:import url=”http://www.example.com/foo/bar.html” />` (dynamic include)
``(动态包含)
它的工作原理非常类似,但它更强大、更灵活:与其他两个包含不同,url可以来自web容器之外 您还可以使用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>
感谢您的回复。静态include比动态include更快,c:import更强大,但也更重,所以只有在需要额外功能时我才会使用它。但我的问题是在两个文件之间划分一个DIV。在页眉我应该打开它,在页脚我应该关闭。我想知道是否有任何像mycode这样的指令可以在模板中包含所有代码的页脚和页眉。谢谢,这正是我想要的Q1。
<%@ 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>