JSP Fragment Tag导致错误

时间:2015-03-16 16:22:07

标签: java jsp tomcat tags fragment

我正在尝试在我的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>

如果我删除片段我的代码工作正常 - 否则我得到一个&#34;未终止的t:base&#34;错误。 我正在使用tomcat 7.x如果需要任何其他信息我也会在这里发布。但由于我是tomcat / jsp / servlets的新手,我很无奈。

1 个答案:

答案 0 :(得分:2)

哟首先需要定义所有属性:

<%@ 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>