2

この例外に関する多くのリンクを調べました。アクションクラスに問題があるのか​​jspに問題があるのか​​わかりません。

私のDAOは:

         {
            ReleaseData releaseData = new ReleaseData();
            releaseData.setRollno(resultSet.getInt("rollno"));
            releaseData.setName(resultSet.getString("name"));
            releaseData.setAge(resultSet.getInt("age"));
            myDataList.add(releaseData);
            System.out.println("the List has---"+myDataList);
        }

そして私のサーブレットは次のとおりです。

            public class DisplayServlet extends HttpServlet
          {
                public void doGet(HttpServletRequest request ,HttpServletResponse  response) throws ServletException,IOException
{
    List<ReleaseData> myDataList = new ReleaseDataDAO().getReleaseData();
    request.setAttribute("myDataList", myDataList);
    request.getRequestDispatcher("/showData.jsp").forward(request, response);
}
}

そして、ここに私のjspがあります:

<c:forEach items="$(myDataList)" var="data">
             <tr>
               <td>${data.rollno}</td>
                 <td>${data.name}</td>
                <td>${data.age}</td>

              </tr>
             </c:forEach>
4

1 に答える 1

3

うーん、あなたは$()の代わりに使用していることに気付きました.jsp${}はjQueryではありません:Pこれ$(myDataList)はEL式として解釈されず、文字列になります。代わりにこれを実行してください:${myDataList}

また:

getter メソッドと setter メソッドを作成する必要があります。提供されたコードでは、rollno への set メソッドを見ることができましたが、get メソッドはありません。また、それらは public でなければなりません

public class ReleaseData{
    private int rollno = 0;
    private String name = "";
    private int age = 0;

    public int getRollno(){ return rollno; }
    public void setRollno(int rollno){ this.rollno = rollno; }

    public int getAge(){ return age; }
    public void setAge(int age){ this.age= age; }

    public String getName(){ return name; }
    public void setName(String name ){ this.name = name; }

}

また、人間が入力できるデータをエスケープすることは常に良いことです。

<c:forEach items="${myDataList}" var="data">
 <tr>
   <td><c:out value="${data.rollno}" /></td>
     <td><c:out value="${data.name}" /></td>
    <td><c:out value="${data.age}" /></td>

  </tr>
 </c:forEach>
于 2012-12-05T19:53:06.843 に答える