java - JSP 片段标记导致错误

标签 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>

如果我删除片段,我的代码可以正常工作 - 否则我会收到“未终止的 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/

相关文章:

java - 在jsp中通过java访问javascript

jsp - 如何使用 XSLT 或 JSP 检索网站的收藏夹图标?

java - Glassfish 项目似乎没有在 Tomcat 服务器上运行

java - Commons Daemon procrun 标准输出已初始化

java - 包含 CQ5 组件时无法创建 cq 节点

java - WebLogic 中未找到类异常,TomCat 中正常

java - 将sql文件名从jsp传递到servlet以进行数据导入

java - Jersey JAXB 如何为 List 实现 MessageBodyWriter

java - 如何将 IStatus 对象的 java 8 lambda 表达式传递给 Logger api(自定义记录器)

java - 出现错误 :(20, 44​​) java: 构造函数 XXX 无法应用于给定类型;