Java JSP包含,导入前后代码

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>

在我的web应用程序的许多页面中,我都有以下结构。我想在页面代码前后创建一个带有固定代码的模板页面,然后为每个不同的页面添加我的代码。问题是我应该在不同的文件中剪切
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>