刚开始我以为是request范围的问题  ,结果不是。他老是不释放。
大家帮帮忙吧。 我为这个耽误了一天了。

解决方案 »

  1.   

    session的我也试过了,也不行,难道用page么 
      这是jsp中的部分代码: 
          html:form action="/orderAction.do" method="post">
            <html:submit>        </html:submit>
            <html:text property="orderID">
            </html:text>
        </html:form>  
    <table border="1" bgcolor="ccff99">
           <tr>
                <td>订单号</td>
                <td>用户编号</td>
               <td>11111111111</td>
                <td>提交时间</td>
                <td>总价</td>
                <td>是否付款</td>
                <td>狀態</td>
            </tr>
            <logic:present name="order">
                <logic:iterate id="orderview" name="order">
                    <tr>1-----
                        <td>
                            <bean:write name="orderview"/>                   </td>                </tr>
                </logic:iterate>
            </logic:present>
        </table>
       这是action中的代码:
    package bookshop;import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionForm;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.Action;
    import java.sql.*;
    import javax.sql.*;
    import javax.naming.*;
    import java.io.*;
    import java.util.ArrayList;
    import javax.servlet.http.HttpSession;public class orderAction extends Action {
        Connection conn;
        ArrayList list = new ArrayList();
        ResultSet rst = null;
        boolean bool = false;
        public ActionForward execute(ActionMapping mapping, ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) {
            orderActionForm orderActionForm = (orderActionForm) form;        DBOperation db = new DBOperation();
            String orderID = orderActionForm.getOrderID();
            request.setAttribute("order", null);
            System.out.println("orderid==============" + orderID);
            try {
                String sql = "select * from shop_user where userid ='" + orderID +
                             "'";            System.out.println("得到连接¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥");
                rst = db.select(sql);
                System.out.println("select++++++++%%%%%%%%%%%%%%%%%%%%%%%%%%" + sql);
                while (rst.next()) {
                    list.add(rst.getString(1));
                    System.out.println("rst.getString = " + rst.getString(1));
                    list.add(rst.getString(2));
                    bool = true;
                    request.setAttribute("order", list);            }        } catch (SQLException ex) {            System.out.println("Exception!!!!!!!!!!!!!" + ex.toString());
            }        return mapping.findForward("success");        // return new ActionForward(mapping.getInput());
        }
    }
      

  2.   

    在你的while循环里面加上一句list.clear()方法,就可以了。
      

  3.   

    把ArrayList list = new ArrayList();这句定义放到execute方法中试试