如何把action中的list传到jsp中呢?

A.jsp叶面中点击buttonA,调用action B , 在B中生成一个List<mstBean>,(mstBean中包括id,name…),叶面迁移到C.jsp,在C.jsp中怎么得到这个list呢,并且根据这个list生成table呢?谢谢

我现在这样做的:

1。在action B中:
NaccsExcelOutputMstForm mForm = new NaccsExcelOutputMstForm();
List<MstItem> aaa=new ArrayList<MstItem>();
MstItem b=new MstItem();
b.setBUSU1(Integer.toString(i));
b.setBUSU2(Integer.toString(i));
aaa.add(b);
......

mForm.setArrList(aaa);

2。在actionForm NaccsExcelOutputMstForm中,定义了ArrList<MstItem> 的set,get 方法

3。在C.jsp中:
<table>
<logic:present name="arrList">
<logic:iterate id="aaa" name="arrList">
<tr>
<td><input type="text" name='SYUTSURYOKU_CD' value='<bean:write name="aaa" property="id" />'/> </td>
<td><input type="text" name='SYUTSURYOKU1' value='<bean:write name="aaa" property="name" />'/> </td>
</tr>
</logic:iterate>
</logic:present>
</table>
什么地方有错误呢?谢谢。

没有抛异常,只是表格没有做出来,第3步中中间部分没有执行,只出来了<table> </table>

我的list中放了一个类,类里面包括id,name,busu....等等

修改了一下:在action B中添加
request.setAttribute("ArrList", aaa);

在C.jsp中添加
<%
List<MstItem> arrList = new ArrayList<MstItem>();
arrList = (List<MstItem>)request.getAttribute("arrList");

%>

但是并没有取出来这个list。这是怎么回事儿呢

非常丁宁的回答我的问题,谢谢。

有 return mapping.findForward("SUCCESS");

使用request对象存放,然后在jsp中取值即可。

1,在action获取request对象:HttpServletRequest request = ServletActionContext.getRequest();

2,在request中存放值:request.setParameter("datas",list);

3,在jsp中获取request中的值。可以只用el表达式获取,然后遍历。

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>

<html>
    <body>
        <c:forEach items="${datas}" var="data">  ${datas}会取到request中的"datas"对应的值,相当于List datas = request.getParameter("datas");加上c:forEach就会遍历list数组了。
            ${data} <br>    在网页中遍历显示list中的值,如果list中存放的是Object对象,使用 ${data.name}即可显示Object对象中name属性的值。
        </c:forEach>
    </body>
</html>

温馨提示:内容为网友见解,仅供参考
第1个回答  2008-06-18
你的list里有id和name么?<bean:write name="aaa" property="name" />是取得request 中名字是aaa的 属性是name的值 ,但是在aaa中根本就没有name这个属性!
第2个回答  2008-06-18
用数据访问对象DAO实现。将a.jsp的数据通过action提交给一个servlet(其实交给另一个jsp处理也行,但这不符合MVC开发模式),再有servlet通过DAO访问数据库。将每条记录作为一个对象保存在List中。在servlet中用request.setAttribute()和request.getRequestDispatcher().forward()转到c.jsp。在c.jsp中用request.getAttribute()取得List对象。
这儿有几个关于DAO的视频。你仔细看完后应该知道怎么写了。我也是从这儿学的http://www.mldn.cn/articlelist/article_58_adddate_desc_1.htm#
第3个回答  2008-06-19
既然第3补中间部分没有运行 说明<logic:present name="arrList"> 没有找到叫"arrList"的javaBean,你得从NaccsExcelOutputMstForm类中找原因,看看他到底有没有创建arrList 并且导向了C.jsp。

如果还没有解决,我看你需要把NaccsExcelOutputMstForm贴出来来让大家看看了

楼主我不明白的是 为什么要set、get,ArrList<MstItem>呢
直接在 action B里request.Attribute("arrList",aaa);不就完了??

再次修改的答复:您在C.jsp中添加 的
<%
List<MstItem> arrList = new ArrayList<MstItem>();
arrList = (List<MstItem>)request.getAttribute("arrList");

%> 没有用处啊删掉它 在action B中添加request.setAttribute("arrList",aaa);
并且把actionB中的NaccsExcelOutputMstForm mForm = new NaccsExcelOutputMstForm();

mForm.setArrList(aaa);
注释掉,还不行的话把完整的actionB贴出来,我帮你该。本回答被提问者采纳
第4个回答  2008-06-18
可以呀,有抛异常什么的吗?可能是你的判断标签,你把<logic:present name="arrList">去一下看看有什么反映.
相似回答