java从map集合传值到jsp页面中取出查询的结果,在jsp页面显示

栏目:Java 数据类型|类|对象|封装|继承|多态等特性
将数据库查询结果显示到JSP页面上 List+Map
Thu Sep 06 11:09:30 CST 2012
List+Map不使用实体对象将数据库查询结果显示到页面上。通过JDBC ResultSet 可获取查询结果(存在于数据库缓冲区内),但在Statement或Connection关闭后,ResultSet即不可用。因此需要一种方式取出所有查询结果并传递至JSP页面。
背景: 需要将数据库查询结果在JSP中一列表的方式显示。问题:通过JDBC ResultSet 可获取查询结果(存在于数据库缓冲区内),但在Statement或Connection关闭后,ResultSet即不可用。因此需要一种方式取出所有查询结果并传递至JSP页面。解决方法: 遍历ResultSet取出所有数据封装进Collection。 具体做法:1. 生成一个List对象(List list = new ArrayList());2. 生成一个Map对象(Map map = new HashMap())。使用Map封装一行数据,key为各字段名,value为对应的值。(map.put(“USER_NAME”,rs.getString(“USER_NAME”));3. 将第2步生成的Map对象装入第1步的list对象中(list.add(map););4. 重复2,3步直到ResultSet遍历完毕在com.taiping.life.util.DBUtil.resultSetToList(ResultSet rs)方法中已经实现了上述过程(所有列名均使用大写),可参考使用。示例代码: // 查询数据库部分代码 import com.taiping.life.util.DBU … Connection conn = DBUtil.getConnection(); PreparedStatement pst = ResultSet rs = try{&&&&
String sql = “select emp_code,real_name from t_employee where organ_id=?”;&&&&
pst = conn.preparedStatement(sql);&&&&
pst.setString(1,”101”);&&&&
rs=pst.executeQuery();&&&&
List list = DBUtil.resultSetToList(ResultSet rs);&&&&
rs.close();&&&&
rst.close();&&&&
}finally{&&& DBUtil.close(rs,pst,conn);}…request.setAttribute(“resultList”,list);…// JSP 方式显示&%=rowData.get(“USER_NAME”)%&// 标准标签方式显示&ul class="maxnew_list"&&c:forEach items="${resultList}" var="emp"&&li&${emp.EMP_CODE } -- ${emp.REAL_NAME }&/li&&/c:forEach&&/ul&适用场合: 适用于多条查询语句或需要对查询结果进行处理的情况。
信息来源:员工信息管理系统
一、&&&语言和环境
1.&&&&&&&实现语言:&&Java
2.&&&&&&环境要求:&&Eclipse&+&mySql|Oracle
3.&&&&&&技术:Struts2+Spring+Hibernate
二、&&&&&数据库设计
数据库:EMPDB
表名:&Dept&(部门表)&&&
序号&&字段名称&&字段说明&&&&类型&&&&位数&&&&&&&属性&&&&&&备注
&&&1&&&&deptid&&&&&&部门编号&&&&int&&&&&&&&&&&&&&&&&&&&标识列
&&&2&&&&dname&&&&部门名称&Varchar&&&&&50&&&&&&&&唯一
表名:Emp&(员工表)
序号&&字段名称&&&&字段说明&&&&&&类型&&&&&&位数&&&&属性&&&&&&&备注
&1&&&&&&&&empid&&&&&员工编号&&&&&&&int&&&&&&&&&&&&&&&&&&标识列
&2&&&&&&&&ename&&&&员工名称&&&&varchar&&&&50&&&&not&null
&3&&&&&&&&egendar&&&&性别&&&&&&&&tinyint&&&&&&&&&&&&&&&&not&null&&&&1男0女
4&&&&&&&&depid&&&&&&&&部门编号&&&&int&&&&&&&&&&&&&&&&&&&&not&null
一、&&&&&要求
请编写一个程序,完成对员工信息的管理&,实现功能如下:
a)&&&&&&&查看所有员工列表;
b)&&&&&&&查看员工详细信息;
c)&&&&&&&添加员工信息;
d)&&&&&&修改员工信息;
e)&&&&&&&删除员工信息;
二、&&&&&推荐实现步骤
1.&&&&&&&建立数据库,表结构见数据库设计;数据连接必须使用JDBC技术。
2.&&&&&&&建立名为HR的JAVA&WEB项目,添加JavaBean和DAO类。
设计一个前台界面index.jsp,点击后显示员工列表。创建ListEmpServlet,
接收index.jsp请求,查询所有员工信息。转发到listemp.jsp员工列表。
3.&&&&&&&设计一个前台界面displayemp.jsp显示所有员工信息,&员工姓名以超链接的形式,点击后能够查看该员工详细信息。
4&&&&&&创建DisplayEmpServlet&,接收要显示的员工ID,查询出这个员工的信息,并转发到displayemp.jsp进行显示。
5&&&&&&&设计一个前台界面addemp.jsp,添加用户信息。
6.&&&&&&&先创建PreAddEmpServlet用于查询所有部门的信息,把部门信息列表转发到addemp.jsp,以下拉框的形式显示。添加员工时的部门号必须是部门表中已经存在的部门;性别默认为”男”。再创建AddEmpServlet处理添加员工的请求。
7.&&&&&&&设计一个前台界面editemp.jsp,修改用户信息。
这是原题。
就从数据库提取数据,在jsp页面显示做不出来。&其他的都已经做完了。
那位大神能帮帮我呀,&&怎么在数据库提取数据在jsp页面显示
回复讨论(解决方案)
查询到数据然后&放&request&中。
通过ORM框架,比如说hibernate,先查询到数据,然后填充到request中去
request.setParameter(&name&,value)
前台取值就行了
最后一句话:看你的样子是想要别人帮你做一个系统出来,然后你给个100分,那么你会失望的
&用jstl&&&和el表达式
楼上说的这些要是楼主知道&那楼主自己就做了。&
建议楼主先去看看视频教程,或者找个类似后台传值,到前端显示的demo
你这不是一句话两句话能回答的,建议你还是系统的学习
看视频教程。
百度jstl你就明白了!
找个增删改查的demo,照着学&
How&much&would&you&like&pay&for?
How&much&would&you&like&to&pay&for?
&&&&&&&既然你使用到了三大框架,你也应该对这三个比较熟悉吧?Hibernate是用来操作数据库的,你可以使用其中的HQL语句,比如你想在数据库中查询所有员工的列表可以这样写:&String&hql=“from&Emp”,然后使用session里面的createQuery(hql)方法把参数传进去,再将返回来的query类型的实例取出它的list,这样就把员工信息取出来放到list里面了。至于如何展示,你可以使用struts2自带的标签,在action把list封装进去,这样在页面就直接可以使用foreach标签来展示出来啦。
如:你现在在java后台方法里面已经查出来了你的emp表:&select&*&from&&这样返回一个list&Emp&集合
1&返回一个列表,如:List&Emp&&emps&=&lists.newArrayList();//查询出来的结果返回一个对象集合
2&放到request里面,如request.setAttribute(&empist&,emps);//把查询出来的结果集放在request里面,等待传到页面上去
3&然后到页面去,如&return&&/emp/list.jsp&;//查询完成后,就跳转到这个页面,用来显示员工信息
4&然后到页面上你就直接用JSTL进行解析,因为是后台传过来的是集合列表,所以要用到循环把后台列表一个个遍历出来,要用到&c:forEach&这标签
这个东西&无非就是将数据来回传。通过debug来看数据走向&&然后再细微调调,就像楼上那样&&放入list&&然后&request.set()
然后前台使用JSTL&解析一下&(百度一下你就知道)。一回生,二回熟。练一下就OK了
找个增删改查的demo,照着学&
用struts2标签啊
action里用heibernate取出存入list&model&
&s:iterator&value=&你的model&&id=&rh&&status=&status&&
&td&height=&50px&&&s:property&value=&status。变量名&/&&/td&
&/s:iterator&`
&/s:iterator&
不懂的话可以搜搜s:iterator标签用法
你可以用直接取出数据做循环
啊实打实的撒大师大师大师大师

我要回帖

更多关于 jsp页面获取list集合 的文章

 

随机推荐