在JSP中迭代List对象
我正在研究一个项目,试图教自己弹簧和支柱。 我目前停留在JSP页面上。 我有一个带变量eid的pojo类和带有getter / setter的ename,我在sql中也有一个表,其中包含六个填充行的相同值。
我通过JdbcTemplate
访问我的数据库并将结果存储在列表中,然后我将此列表传递给我的操作页面,我将其设置为request.setAttribute("empList",eList)
。 在我的jsp页面中,我调用该属性,然后尝试使用JSTL
迭代它。
但是没有任何显示,我知道我的列表变量中包含数据,因为我使用表达式标签检查它,对象显示如下:
[org.classes.database.Employee@d9b02, org.classes.database.Employee@13bce7e, org.classes.database.Employee@171cc79, org.classes.database.Employee@272a02, org.classes.database.Employee@137105d, org.classes.database.Employee@1359ad]
我想也许我在jstl上遗漏了一些东西,但我的META-INF/lib
文件夹中有jstl-1.2。 我也尝试在配置路径文件中添加它,但仍然没有。 我也有正确的标签url。
当我做一个简单的 。 你好打印出来。 所以这让我相信我的
jstl
工作正常,但是当我尝试使用jstl
遍历我的列表时,根本没有任何显示。
无论如何这里是我的JSP页面:
Employee Details Employee Details
Employee ID: Employee Pass:
任何帮助将非常感谢!
在自学Spring和Struts之前,你应该学习Java。 像这样输出
org.classes.database.Employee@d9b02
是Object#toString()
方法的结果,所有对象都从Object
类inheritance,这是Java中所有类的超类。
List
子类通过迭代所有元素并在那些元素上调用toString()
来实现它。 但是,您似乎没有在Employee
类中实现(覆盖)该方法。
你的JSTL在这里
Employee ID: Employee Pass:
除了您没有名为eList
的页面,请求,会话或应用程序范围属性之外,这样做eList
。
你需要添加它
<% List eList = (List)session.getAttribute("empList"); request.setAttribute("eList", eList); %>
或者在forEach
使用empList
属性。
Employee ID: Employee Pass:
将代码更改为以下内容
<%! List eList = (ArrayList)session.getAttribute("empList");%> .... <% for(int i=0; i <%= ((Employee)eList[i]).getEid() %> <%= ((Employee)eList[i]).getEname() %> <%}%>
你可以直接在forEach
标签中读取empList
。试试这个
Employee ID: Employee Pass:
在迭代包含Maps的ArrayList时,只有scriplets的另一个例子。
<% java.util.List> employees=(java.util.List>)request.getAttribute("employees"); for (java.util.Map employee: employees) { %> "/> ... <%}%>
Employee ID: Employee Pass:
- 以编程方式为Spring创建JNDI DataSource
- class从类型java.util.Set和java.util.Listinheritancespliterator()的无关默认值
- 尝试添加数据库驱动程序(JDBC):RmiJdbc.RJDriver – 错误,不在CLASSPATH中?
- 为什么我的Java应用程序看不到* .jrxml?
- 如何使用Maven“shade”插件将Apache CXF应用程序打包到单片JAR中
- Geo Location API并在半径范围内查找用户
- 使用application / json contentType的AJAX POST调用获取“no’Access-Control-Allow-Origin’标头”错误
- Java – 从Int到Short的显式转换
- 如何在Stream上短路减少?