action代码:
public String addChaim(){

//session

//application
List<Claimvoucherdetail> lco=null;
HttpServletRequest request=ServletActionContext.getRequest();
HttpSession session=request.getSession();
if(session.getAttribute("lcos")==null){
lco=new ArrayList<Claimvoucherdetail>();
lco.add(claimvoucherdetail);
}else{
lco=(List<Claimvoucherdetail>)session.getAttribute("lcos");
lco.add(claimvoucherdetail);
}
session.setAttribute("lcos", lco);
lco=(List<Claimvoucherdetail>)session.getAttribute("lcos");

return SUCCESS;
}
jsp代码:
<s:iterator id="claimvoucherdetail" value="#session.lcos">
<tr>
<td>
<s:property value="claimvoucherdetail.cvditem"/>
<s:property value="claimvoucherdetail.cvdaccount"/>
<s:property value="claimvoucherdetail.cvddes"/>
</td>
</tr>
</s:iterator>
当代码运行到lco=(List<Claimvoucherdetail>)session.getAttribute("lcos");
这时loc是null,
而运行到lco.add(claimvoucherdetail);
这时loc长度是N个而且所有值都变成一样的

解决方案 »

  1.   

    public String addChaim(){
        List<Claimvoucherdetail> lco=null;
        HttpServletRequest request=ServletActionContext.getRequest();
        HttpSession session=request.getSession();
        if(session.getAttribute("lcos")==null){
            lco=new ArrayList<Claimvoucherdetail>();
            lco.add(claimvoucherdetail);
        }else{
            lco=(List<Claimvoucherdetail>)session.getAttribute("lcos");
            lco.add(claimvoucherdetail);
        }
        session.setAttribute("lcos", lco);
        lco=(List<Claimvoucherdetail>)session.getAttribute("lcos");
        return SUCCESS;
    }
    jsp代码:
    <s:iterator id="claimvoucherdetail" value="#session.lcos">
        <tr>
            <td>
                <s:property value="claimvoucherdetail.cvditem"/>
                <s:property value="claimvoucherdetail.cvdaccount"/>
                <s:property value="claimvoucherdetail.cvddes"/>
            </td>
        </tr>
    </s:iterator>
    整理下代码方便查看
      

  2.   

    你好,请问一下claimvoucherdetail
    是什么东西;
      

  3.   

    Quote: 引用 2 楼 hub001a 的回复:

    public String addChaim(){
        List<Claimvoucherdetail> lco=null;
        HttpServletRequest request=ServletActionContext.getRequest();
      
    一个实体对象名称