使用 JSP 包含指令、JSP 包含操作和使用 JSP 标记文件来包含文件有什么区别?结论
似乎有两种使用 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>
在我看来,这与使用包含并向其传递参数完全相同。那么标记文件是否与包含文件相同?