【问题标题】:JSP Fragment Tag causing errorJSP 片段标记导致错误
【发布时间】:2015-03-16 16:22:07
【问题描述】:

我正在尝试在我的 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 的新手,所以我很无助。

【问题讨论】:

    标签: java jsp tomcat tags fragment


    【解决方案1】:

    你需要先定义所有属性:

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

    【讨论】:

    • 非常感谢。在这个话题上浪费了相当多的时间。 ://
    猜你喜欢
    • 2014-02-10
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2011-04-02
    • 1970-01-01
    • 2014-03-17
    相关资源
    最近更新 更多