使用 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>
那么我应该使用哪种方法呢?一个现在被认为已经废弃,或者它们都是有效的并且涵盖不同的用例?
剪辑
使用此标记文件与使用 include 不是一样的吗?
// 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 并向其传递参数非常相似。那么标记文件和包含文件是一样的吗?