我正在尝试在我的 jsp 文件中使用片段标签。标签文件(base.tag)中的代码如下
<%@tag description="Overall Page template" pageEncoding="UTF-8"%>
<%@attribute name="nav" fragment="true" %>
<%@attribute name="css" fragment="true" %>
<%@attribute name="js" fragment="true" %>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<jsp:invoke fragment="css" />
<jsp:invoke fragment="nav" />
<jsp:doBody/>
<jsp:invoke fragment="js"/>
</body>
</html>
我的jsp是这样的:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:base>
<jsp:attribute name="nav">
<jsp:include page="nav.jsp" />
</jsp:attribute>
<jsp:body>
<p>hi</p>
</jsp:body>
<jsp:attribute name="js">
<p>hi</p>
</jsp:attribute>
</t:base>
如果我删除片段,我的代码可以正常工作 - 否则我会收到“未终止的 t:base”错误。 我正在使用 tomcat 7.x,如果需要任何其他信息,我也会在此处发布。但由于我是 tomcat/jsp/servlets 的新手,我很无助。
最佳答案
你需要先定义所有的属性:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:base>
<jsp:attribute name="js">
<p>hi</p>
</jsp:attribute>
<jsp:attribute name="nav">
<jsp:include page="nav.jsp" />
</jsp:attribute>
<jsp:body>
<p>hi</p>
</jsp:body>
</t:base>
关于java - JSP 片段标记导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081880/