簡體   English   中英

定制標記文件的JSP錯誤

[英]JSP error with custom tag file

我收到此JSP錯誤,這沒有任何意義,因為測試代碼中的語法看起來不錯:

org.apache.jasper.JasperException: /tests/jsptag1.jsp (line: 12, column: 2) Unterminated <my:item tag
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
org.apache.jasper.compiler.Parser.parseJspAttributeAndBody(Parser.java:1031)
org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:999)
org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1276)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1455)
org.apache.jasper.compiler.Parser.parse(Parser.java:139)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

這是我的測試jsptag1.jsp:

<%@taglib prefix="my" tagdir="/WEB-INF/tags" %>


<% request.setAttribute("items", new int[]{1, 2, 3}); %>
<my:item>
    <jsp:attribute name="header">
        <br>This is the header <br>
    </jsp:attribute>
    <jsp:body>
        value: 
    </jsp:body>
    <jsp:attribute name="footer">
        <br>This is footer<br>
    </jsp:attribute>
</my:item>

這是我的item.tag文件:

<%@tag body-content="scriptless" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@attribute name="header" fragment="true" %>
<%@attribute name="footer" fragment="true" %>

<jsp:invoke fragment="header"/>
<c:forEach items="${requestScope['items']}" var="thisItem">
    <jsp:doBody/>
    Item: ${thisItem}
</c:forEach>
<jsp:invoke fragment="footer"/>

我真的不明白為什么會出現此錯誤。 我似乎所有標簽都已打開和關閉。 有人看到為什么顯示此錯誤嗎?

調用定制標記時,將所有jsp:attribute元素放在jsp:body元素之前。 具體來說, jsptag1.jspmy:item元素應jsptag1.jsp包含header元素,footer元素和body元素。

盡管規范未在參考文本中指出,但規范中的JSP語法要求此順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM