[JSP编程]在STRUTS中如何处理查询的到的RESULTSET

发布网友 发布时间:2024-10-24 09:35

我来回答

1个回答

热心网友 时间:2024-11-01 16:14

关于这个问题可能每个人有自己的解决办法。 但如果要按照struts的风格来做,应该是这样的: 1)自己写个类(假定为DataMap),这个类继承HashMap,并实现DynaBean 2)将ResultSet中的数据取出填充到这个DataMap中 3)将多条数据(也就是多个DataMap)填到一个ArrayList 4)将这个ArrayList放到你的ActionForm中 5)在jsp中引用,仿照struts-example中的例子引用。 例如: 这里subscriptions就是刚才讲的那个ArrayList user是ActionForm的名字 subscription就是你那个DataMap的实例,代表一条记录 那些property实际上就是字段名了。 本贴对您是否有帮助?投票:是否投票结果:00 ----------------------------------------------------------- 看到很多朋友在问这个问题,我愿意再重复一遍。希望能对大家有用 下面是我在回答"单选框如何用?发表时间:2003-3-10下午7:20" 时的参考代码,很有代表性。现略作改动(下面的所有代码都经过实际验证) 这是一个最小实现: 后台处理代码: //////////////////////// ResultSetrs=... ResultSetMetaDatarsmd=rs.getMetaData(); intcolumnCount=rsmd.getColumnCount(); ArrayListrows=newArrayList(); while(rs.next()){ HashMaprow=newHashMap(); for(inti=1;i<=columnCount;i++){ Stringname=rsmd.getColumnName(i); row.put(name,rs.getObject(i)); } rows.add(row); } /////////////////////////// request.setAttribute("rows",rows);//将包装好的ArrayList放到Request里以便jsp使用。 注意////之间的代码其实可作为公用代码,写到组件里去 (传入ResultSet做参数,返回包装好的ArrayList) 前台处理代码:假设这是一个单选框 前台注释: 第1行这里name="rows"就是后台setAttribute的名字id="row"是给出循环里要引用每一行的标识 第2行这里property="roleId"是html表单的变量名 value="id"是字段的名字 idName="row"就是第1行的id的值 第3行这里name="row"就是第1行的id的值property="roleDesc"是字段名 如果是要显示这个resultset的记录,方法就跟struts例子里的基本一样了: 这里的各项属性意义与上一样。 需要提醒的是:因为我们是将记录集放到request中的,所以这个 在他的例子中 用struts这样的表示方式还有一些另外的好处,例如可以用bean:write的format属性 格式化字段的值,这是我们经常要用到的功能,象格式化日期和数字等。 通过这个例子大家可以做到举一反三的效果,凡是需要用到数据库中记录集的地方都可以依此类推, 想下拉表单,多选框等等。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com