似乎有两种使用JSP进行模板制作的方法。包括具有以下语句之一的文件
<%@ include file="foo.html" %>
<jsp:include page="foo.html" />
或使用JSP标记文件
// Save this as mytag.tag
<%@ tag description="Description" pageEncoding="UTF-8"%>
<html>
<head>
</head>
<body>
<jsp:doBody/>
</body>
</html>
并在另一个JSP页面中使用
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:mytag>
<h1>Hello World</h1>
</t:mytag>
那么我应该使用哪种方法呢?现在是不推荐使用的一种,还是它们既有效又涵盖了不同的用例?
编辑
使用此标记文件与使用包含文件不一样吗?
// Save this as product.tag
<%@ tag description="Product templage" pageEncoding="UTF-8"%>
<%@ tag import="com.myapp.Product" %>
<%@ attribute name="product" required="true" type="com.myapp.Product"%>
Product name: ${product.name} <br/>
Quantity: ${product.quantity} <br/>
并在另一个JSP上调用它
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:product>
<c:forEach items="${cart.products}" var="product">
<t:product product="${product}"/>
</c:forEach>
</t:product>
在我看来,这与使用include并将参数传递给它完全相同。标记文件和包含的文件一样吗?