Servlet / JSP:在移动类型上找不到属性'id'

时间:2013-03-20 14:49:42

标签: jsp servlets jstl

1)我在HTML页面中有一个模拟HTTP GET请求的链接。(通过手动提供查询字符串。这个页面基本上调用一个Servlet,在其中{{1}完成数据库访问SQL查询作为查询字符串的一部分发送。

doGet()http://localhost:8080/prelim_db_test_19_3_2013/md?q=select * from test.mobile是MySQL数据库,test是表格。

2)然后,结果存储在ArrayList中。

mobile

其中ArrayList <mobile> mylist=new ArrayList<mobile> (); mylist.add(new mobile(rs.getInt("id"),rs.getString("name"))); 只是一个以mobileid作为类变量的类(以及构造函数)

3)然后将name转发到另一个JSP:

ArrayList

4)现在在第二个JSP中,我简单地使用request.setAttribute("answer", mylist); request.getRequestDispatcher("info.jsp").forward(request, response); 来迭代并打印表内容:

<c:forEach>

然而,当我运行项目时,会抛出异常:

<c:forEach items="${answer}" var="i"> <tr> <td>${i.id}</td> <td>${i.name}</td> </tr> </c:forEach>

在这一行:

javax.el.PropertyNotFoundException: Property 'id' not found on type mobile

请注意,当结果打印到控制台时,DB访问本身可以正常工作(因此使用我的查询字符串也会调用Servlet)。这是我在Eclipse中的项目设置(如果它的设置方式有任何问题):

enter image description here

我在这里做错了什么?

编辑 request.getRequestDispatcher("info.jsp").forward(request, response);

mobile.java

2 个答案:

答案 0 :(得分:1)

在移动课程中,你需要为字段添加setter和getter。然后只有你可以在jsp中访问。我认为你没有为他们保留setter和getter。

答案 1 :(得分:0)

正如@PSR和@CaptainGouLash指出的那样,需要设置getter和setter,以便可以通过JSTL访问类变量。

请参阅: thisthis as pointed out by @CaptainGouLash之外的{{3}}