关于页面传值和导出的问题
情况是这样:我在后台ACTION中从TXT文件中读取了所有的数据组成了一个list,并且我把这个list中错误的数据拿了出来组成另一个wringlist
- Java code
fileList = ReadExcelForKeeprepair.getInfoForCompany(is,this.sessionContainer,this.clazz.toString()); for(int i=0;i<fileList.size();i++) { boolean flag = true; CompanyConsignmentReceiveInfo cpInfo = new CompanyConsignmentReceiveInfo(); cpInfo = (CompanyConsignmentReceiveInfo) fileList.get(i); if((cpInfo.getMachineNo().length()) != 9 || "".equals(cpInfo.getMachineNo())) { cpInfo.setMachineNo(cpInfo.getMachineNo()+"(错误)"); cpInfo.setWringid(i+1); flag = false; } if("".equals(cpInfo.getConsignmentDate()) || cpInfo.getConsignmentDate().length() != 10) { cpInfo.setConsignmentDate(cpInfo.getConsignmentDate()+"(错误)"); cpInfo.setWringid(i+1); flag = false; } if("".equals(cpInfo.getItemcode())) { cpInfo.setItemcode(cpInfo.getItemcode()+"(错误)"); cpInfo.setWringid(i+1); flag = false; } if("".equals(cpInfo.getDealerCode())) { cpInfo.setDealerCode(cpInfo.getDealerCode()+"(错误)"); cpInfo.setWringid(i+1); flag = false; } if("".equals(cpInfo.getContractNo())) { cpInfo.setContractNo(cpInfo.getContractNo()+"(错误)"); cpInfo.setWringid(i); flag = false; } if(flag==false) { wringfilelist.add(cpInfo); } } if(wringfilelist.size()!=0) { request.setAttribute("wringfilelist", wringfilelist); return getMyselfForward(mapping, applyForm, request, response); }我把这个wringlist通过request传到了页面并且用logic:iterate标签遍历显示了出来
- HTML code
<logic:present name="wringfilelist" scope="request"> <logic:iterate id = "result_exam" name = "wringfilelist" > <%if(i % 2 == 0 ){ %> <tr class="table_c1"> <%}else{ %> <tr class="table_c2"> <%} %> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='wringid'/></FONT></td> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='machineNo'/></td> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='itemcode'/></td> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='contractNo'/></td> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='dealerCode'/></td> <td style="word-wrap: break-word; word-break: break-all"><bean:write name='result_exam' property='consignmentDate'/></td> </tr> <%i = i+1; %> </logic:iterate> </logic:present> </table>
我遇到的问题是,我现在要用这个wringlist到后台进行导出操作,那么我在后台要怎么得到这个wringlist呢?这个wringlist并不是数据库里的数据,是从list里读取出来的错误的数据不能入库,而list的话因为有wringlist的存在所以也不能入库,所以导出时在数据库里捞一遍数据在导出是不可能的,我在网上查了一下,有2种方法一种说用session,但是说用session的太精简了。完全不知怎么用。一种说定义一个全局变量的,我试了一下报空指针异常。
其实在后台我用的是同一个action,但是方法不同,最简单的说法就是
在一个action里,我有2个方法fun1,fun2。在fun1里有一个list,我把这个list传到了页面1.jsp,然后我在1.jsp中调用了fun2,而fun2中使用了这个list。
这个list在页面没有改变。如果可以高手大大们可以直接跳过1.jsp直接在action里调用。在线求解答。
[解决办法]
你不就想得到wringfilelist这个吗 你写个方法 直接返回这个不就行了吗 然后new一个类 直接调用
大体是这样
- Java code
class A (){ List wringfilelist(){ return wringfilelist;}}你用得时候 A a=new A();List b=A.wringfilelist ;不就可以了?希望能给你点启发。