忘高手来指教...急 有好的回复可以加QQ:136966692
例子如下:action中:
public ActionForward getAlloByUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { AllowanceForm alloForm = (AllowanceForm) form;// TODO Auto-generated
// method stub
System.out.println("近来了么");
String thisPage = request.getParameter("thisPage");
Integer page = new Integer(thisPage);
request.setAttribute("thisPage", page); HttpSession session = request.getSession();
UserForm user = (UserForm) session.getAttribute("user");
List list = allobo
.getAlloByUser(user.getId().toString(), thisPage, max);
Integer maxPage = this.allobo.getAlloByUserSize(
user.getId().toString(), max);
Iterator it = list.iterator();
for (int i = 0; it.hasNext();) {
AllowanceForm former = (AllowanceForm) it.next();
System.out.println(former.getPId() + "人员ID");
List listly = allobo.getKindDataById(former.getPId().toString());
request.setAttribute("listlysize", listly.size());
System.out.println(listly.size() + "=============size");
Iterator its = listly.iterator();
for (; its.hasNext();) {
KindDataForm formly = (KindDataForm) its.next();
System.out.println(formly.getAName() + "拥有津贴");  //后台这个地方完全没问题可以根据人ID查找不同的拥有津贴然而吧listly传入前台后就只能获取最后一条信息。
request.setAttribute("listly", listly);
}
}                   
request.setAttribute("maxPage", maxPage);
request.setAttribute("list", list);
return mapping.findForward("getAlloByAll");
}前台获参页面:
        <table align="center" cellpadding="4" cellspacing="1"
class="toptable grid" border="1">
<tr align="center">
<td class="category" width="10%" align="center">
津贴编号
</td>
<td class="category" width="20%" align="center">
姓名
</td>
<td class="category" width="15%" align="center">
身份证号码
</td>
<td class="category" width="25%" align="center">
户号
</td>
<td class="category" width="20%" align="center">
拥有津贴(就是这个地方)
</td>
<td class="category" width="20%" align="center">
操 作
</td>
</tr> <c:forEach items="${list}" var="form"> <tr align="center" onMouseOver=this.className=
'highlight' onMouseOut=this.className=''>
<td width="10%" align="center">
${form.id }
</td>
<td width="20%" align="center">
${form.name }
</td>
<td width="15%" align="center">
${form.cardNum }
</td>
<td width="25%" align="center">
${form.doorId }=======${form.PId}
</td>
<td width="20%" align="center">
<c:forEach items="${listly}" var="item">
<html:link
action="/allowance?action=getAlloOneById&dId=${form.id}">
<font color="red">${item.AName }</font>
</html:link>
</c:forEach>

</td>
<td width="20%" align="center">
<html:link
action="/allowance?action=toChangAlloMoney&dId=${form.doorId}">
<font color="red">添加津贴数据</font>
</html:link>
</td>
</tr>
</c:forEach>

解决方案 »

  1.   

    在action里面打印下list和前台接收的list是否一样,如果一样就是前台你循环的是否出问题了。。
      

  2.   

    List listly = allobo.getKindDataById(former.getPId().toString()); 
    request.setAttribute("listlysize", listly.size()); 
    System.out.println(listly.size() + "=============size"); 
    Iterator its = listly.iterator(); 
    for (; its.hasNext();) { 
    KindDataForm formly = (KindDataForm) its.next(); 
    System.out.println(formly.getAName() + "拥有津贴");  //后台这个地方完全没问题可以根据人ID查找不同的拥有津贴然而吧listly传入前台后就只能获取最后一条信息。 
    request.setAttribute("listly", listly); 
    } 你这样传过去是有问题的.你想啊!它每跌代一次就设置一次属性.而属性名依然是listly,这样的活它就只能显示最后一条数据了.
    这是你犯的逻辑错误,需要小心伙计.
      

  3.   

    for (int i = 0; it.hasNext();) { 
    AllowanceForm former = (AllowanceForm) it.next(); 
    System.out.println(former.getPId() + "人员ID"); 
    List listly = allobo.getKindDataById(former.getPId().toString()); //难到这不算是动态的传参后返回的动态listly吗?
    request.setAttribute("listlysize", listly.size()); 
    System.out.println(listly.size() + "=============size"); 
    Iterator its = listly.iterator(); 
    for (; its.hasNext();) { 
    KindDataForm formly = (KindDataForm) its.next(); 
    System.out.println(formly.getAName() + "拥有津贴");  //后台这个地方完全没问题可以根据人ID查找不同的拥有津贴然而吧listly传入前台后就只能获取最后一条信息。 
    request.setAttribute("listly", listly); 
    } }            
      

  4.   

    request.setAttribute("listly", listly); 
    你把这行放到循环里有什么用意吗?
    也没看到他需要迭代啊,楼主的这个方法里思路是不是有点儿乱啊……
      

  5.   

    request.setAttribute("listly", listly); 这一句放在循环里,每次循环都把前面存入的给覆盖了,当然只是得到最后一个了,要不然那就问题大了
      

  6.   

    问题已解决!只要用个类将listly和AllowanceForm 封装起来再用list.add(封装的类即可)||