刚接触struts,下了个1.38,结果没有tld文件(教材里的例子用的1.2),没法用标签库,就在想是不是apache在struts1中不打再算用自己的标记库了,上网搜了下,发现大家都在谈jstls什么的,感觉挺复杂,又搜了搜struts的标签,大多数人还是说用struts方便,jstl貌似对大项目很有用。 于是用struts 多数例子都用诸如这样的包结构来构建程序: cn.org.action.ActionBean cn.org.actiomform.FormBean cn.org.bean.* cn.org.service.BussinessManager 弄了半天,在实现从数据库中取 ResulSet 在页面中循环遍历显示出记录卡壳了 以前就在页面上嵌入代码<%while(rs.next().......rs.getString("***"))%> 之类的 现在看教学的例子,比如一个账户的信息 cn.org.bean.* 中建一个类 Account 里面有用户的登录帐号、密码、姓名、年龄 只有 get* set*==一系列方法 于是获得查询获得 ResultSet rs 后 Account account =new Account(); 依次 account.set*()=rs.getString(""); 将account返回 并且 session.setAttribute("account",account) 我以为这样的话在JSP页面中 使用 <logic:iterate name="account" id="row"> <bean:wirte name="row" property="username"> .......... </logic:iterate> 结果报错 查了一下才发现 <logic:iterate 只认得 数组 Cllection Map之类的对象 而自己建的对象是不认的 于是又改 获得ResultSet rs 后 List list =new List()
while(rs.next()){ Map map =new HashMap(); map.put("username",rs.getString("username")); ......... list.add(map); } 最后 return list; 再把 session.setAtrribute("account",list); 这样终于logic:iterate能认了 于是就很纳闷,为什么搞得这么复杂呢,如果仅仅是为了对数据进行增删改查的操作 那个Account类仅仅是为在在Action中把ActionForm里面用一下作为表单的中介??? 用Struts时,数据库中查出来的ResulSet 一定要存储成一个List以后才能用吗?这个List建起来是不是也要消耗一定的内存呢?还有没有更加方便的用法? 我还在上学,没有项目经验 大家实际项目都是怎么用的?谢谢大家
while(rs.next()){ Map map =new HashMap(); map.put("username",rs.getString("username")); ......... list.add(map); } 最后 return list; 再把 session.setAtrribute("account",list); 这样终于logic:iterate能认了 于是就很纳闷,为什么搞得这么复杂呢,如果仅仅是为了对数据进行增删改查的操作 那个Account类仅仅是为在在Action中把ActionForm里面用一下作为表单的中介??? 用Struts时,数据库中查出来的ResulSet 一定要存储成一个List以后才能用吗?这个List建起来是不是也要消耗一定的内存呢?还有没有更加方便的用法? 我还在上学,没有项目经验 大家实际项目都是怎么用的?谢谢大家
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货