代码之家  ›  专栏  ›  技术社区  ›  doree007

如何在jsp struts2中重新加载页面时保存数据

  •  1
  • doree007  · 技术社区  · 12 年前

    我已从的数据库加载数据 ArrayList 。然后我使用这些数据进行更新过程。我正在搜索并将数据加载到 排列列表 。这是搜索时加载数据的代码。

    System.out.println("In search job method");
    
        region ="TEST";
        PcinitialdataEjb pcinEjb=new PcinitialdataEjb(region);
        pcinitiladataList = new ArrayList<Pcinitialdata>();
    
        System.out.println(hiddentableRadioButtonValue+"**************************************************************************");
    
        if(idSearchType.equalsIgnoreCase("comRef"))
        {
            pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","Commercial");
            System.out.println(idSearchType);
        }
        else if(idSearchType.equalsIgnoreCase("constructRef"))
        {
    
            pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","customerRef");
        }
        else if(idSearchType.equalsIgnoreCase("projJobNo"))
        {
    
            pcinitiladataList=pcinEjb.getDataForEstNumber("510.00/EBS/12/0031","projNoJobNo");
        }
    
    
        Pcinitialdata aa=new Pcinitialdata();
        aa.setDecrp("doorwerfxcv");
        pcinitiladataList.add(aa);
        System.out.println(pcinitiladataList.toString());
        for(int i = 0; i < pcinitiladataList.size(); i++) {   
    
            if(i==0)
            System.out.print(pcinitiladataList.get(i));
    
    
            if(i==1)
            System.out.print((String)pcinitiladataList.get(i).getDecrp());
        }
    

    这个代码运行得很好。我的问题是,在我将数据加载到jsp表之后,我使用单选按钮来选择原始数据。然后我点击加载按钮将数据加载到界面。但我的问题是,当我点击加载按钮时,pcinitialdata列表变为空。 这是加载按钮单击的代码。

    public String loadValuesForPage()
    {
        if(pcinitiladataList.equals(null))
        {
    
            String resrult=searchJob();
        }
    
        for(int i = 0; i < pcinitiladataList.size(); i++) {   
            if((hiddentableRadioButtonValue.equalsIgnoreCase(pcinitiladataList.get(i).getEstNo())))
            {
    
                Pcinitialdata estNoObject=new Pcinitialdata();
                estNoObject=pcinitiladataList.get(i);
    
                fileNo=estNoObject.getEstNo();
            }
        }
    
    
        return SUCCESS;
    }
    

    如何在完成更新过程之前保留数据??

    当我点击更新按钮时,我的数组列表变为空。在我完成更新过程之前,有什么方法可以保存这些数据吗。我能用Hoshmap做这个吗??

    1 回复  |  直到 9 年前
        1
  •  1
  •   Dan    12 年前

    易于理解的将数据存储到会话中,并在更新完成后从会话中删除数据。

    在这个例子中,我存储了一个名为的数组列表 myarrayList 使用密钥名称进入我的会话 holdarrylist

     if ( !session.containsKey(holdarrylist) ) 
    {
    // Place the arraylist into the session  eg. myarrayList  
    session.put(myarrayList, holdarrylist); //myarrayList is your arraylist ato be kept in the session with the name  holdarrylist 
    } else {
    
        ArrayList<Integer> list = (ArrayList<Integer>) session.get("holdarrylist");
         list.add( 1 /* Do here what ever you want */);
    // Retrieve session data
    
        --------------
        //--do your updation work----
        //after remove the arraylist from session  
        //session.remove("holdarrylist");
     }