我浏览了许多有关此异常的链接。不知道是action类有问题还是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>
最佳答案
嗯,我刚刚注意到,您使用的是 $()
而不是 ${}
,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>
关于javax.el.PropertyNotFoundException : Property 'rollno' not found on type java. lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13731111/