关于struts1最近学习到的东西

本文通过一个具体案例展示了如何从DAO层获取对象集合,并直接传递至前端进行简洁的数据展示,避免了不必要的中间转换步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,当在action中写入一个sql语句后,比如 select employee, department, salary from company where status = 1;后,返回的是一个object集合,当我需要把这个集合request.setAttribute到前台之后我开始试图把这三个属性,代码如下(进入死胡同过程)

EntityClass ec = new EntityClass();

List result = dao.find(sql);

Object[] obj = (Object[])result.get(0);

List<EntityClass> ecList = new ArrayList<EntityClass>();

for(int i=1; i<=obj.length; i++){

  if(i % 3 == 0){

    ec.setEmployee(obj[i-1]);

    ecList.add(ec);

    ec = new EntityClass();

} else  if(i%2 == 0 && i % 3 != 0){

   ec.setDepartment(obj[i-1]);

} else {

   ec.setSalary(obj[i-1]);

}

}

request.setAttribute("listItem", ecList);

前台:

<c:foreEach items=${listItem} var=item>

<tr>

<td>

${item.employee}

</td>

<td>

${item.department}

</td>

<td>

${item.salary}

</td>

</tr>

</c:foreEach>


====================================================

上面的代码往死里想都不对折腾了大概一个多小时,这段时间是最痛苦的


其实正确的代码是

当从dao层获取这个object集合之后立马把这个返回即可,代码如下

request.setAttribute("listItem", query);

前台

<c:foreach items="listItem" var="item">

<tr>

<td>${item[0]}</td>

<td>${item[1]}</td>

<td>${item[2]}</td>

</tr>

</c:foreach>

=================================================

这个几分钟就解决了,逻辑也十分正确,当得知可以这样后我立马有一种想吐血的感觉,写这么长算是对我的一种教训吧,希望我记住。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值