0

ViewServlet のリクエスト オブジェクトに保存されているオブジェクトのリストにアクセスするために jstl を使用して view.jsp のテーブルにデータを入力しようとすると、次のエラーが発生します。

/WEB-INF/jsp/admin/view.jsp (line: 34, column: 16) Attribute value invalid for tag forEach according to TLD  

エラーなしでテーブルに正しくデータを入力するようにコードを修正する方法を教えてもらえますか?

view.jsp の関連部分は次のとおりです。

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

        <table>
        <!-- here should go some titles... -->
            <tr>
                <th>Type</th>
                <th>Number</th>
                <th>id</th>
            </tr>
            <c:forEach begin="1" end= "${ no }" step="1" varStatus="loopCounter"
    value="${coursesummaries}" var="coursesummary">
            <tr>
                <td>
                    <c:out value="${coursesummary.coursetype}" />
                </td>
                <td>
                    <c:out value="${coursesummary.numunits}" />
                </td>
                <td>
                    <c:out value="${coursesummary.id}" />
                </td>
            </tr>
            </c:forEach>
        </table>

ViewServlet.java の関連部分は次のとおりです。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
throws ServletException, IOException {
   String idString = req.getParameter("id");
   Long id = new Long(idString);
   List<CourseSummary> coursesummaries = new CourseSummaryDAO().findAll(id);
   req.setAttribute("coursesummaries", coursesummaries);
   jsp.forward(req, resp);
}  

そして、ここにスタック トレース全体があります。

org.apache.jasper.JasperException: /WEB-INF/jsp/admin/view.jsp (line: 34, column: 16) Attribute value invalid for tag forEach according to TLD
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:237)
    org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1265)
    org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:875)
    org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428)
    org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434)
    org.apache.jasper.compiler.Node$Root.accept(Node.java:475)
    org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376)
    org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1798)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    myapp.ViewServlet.doGet(ViewSchoolServlet.java:39)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    myapp.SecurityFilter.doFilter(SecurityFilter.java:56)
4

1 に答える 1

3

valueタグの有効な属性ではない属性を使用しようとしています<c:forEach>。おそらく、次を使用するつもりでしたitems

<c:forEach begin="1" end= "${ no }" step="1" varStatus="loopCounter"
           items="${coursesummaries}" var="coursesummary">

有効な属性のリストについては、 <c:forEach>Oracle Docを参照してください。

それとは別に、コレクションを反復処理していることを考えるとbegin、属性を使用する意図がよくわかりません。あなたもそれらを使用していません。そして、あなたはそれらを本当に必要としません。endstep

于 2013-08-09T22:09:47.347 に答える