我经历了一些有关此例外的链接。我不知道动作类是否有问题或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);
}
我的Servlet是:
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>
答案 0 :(得分:3)
嗯,我刚才注意到,你使用的是$()
而不是${}
,jsp不是jQuery:P $(myDataList)
没有被解释为EL表达式并成为一个字符串,请改为:${myDataList}
此外:
你需要创建getter和setter方法,在你提供的代码中,我可以看到rollno的set方法,但是没有get方法,它们也必须是公共的
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>