现在有个问题
有一个arrlylist 然后放到session 里
在另一个 action 里我掉用 这个 session 把 arrliylist 取出来 放到 两个变量 A和B里
然后我需要把A和B再次放到 sessionA 和sessionB 中,然后迁移到另一个画面修改sessionA
但是,在修改后
我如果不想保存就返回原来画面
我想直接调用SessionB ,这样就可以显示最初的值了
我是这么想的
但是实现起来有问题,就是修改了sessionA后sessionB的值也变了,变的和A一样
有没有办法能把SessionB的值保存起来
然后无论怎么修改sessionA ,SessionB里的arrliylist内容都不改变?
我试着用static 方法声明变量,然后赋值,但是也还是不好用~~~
我用setter &getter 也是不好用~~~
谁能帮我
小弟分少~~~
在此全部奉上~~~
不尽感激~~~
------解决方案--------------------
- Java code
import java.io.ObjectInputStream;import java.io.ByteArrayInputStream;import java.io.ObjectOutputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;public class Test { public static Object deepClone(Object target) { Object retValue = null; try { ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream os = new ObjectOutputStream(bo); os.writeObject(target); ObjectInputStream is = new ObjectInputStream(new ByteArrayInputStream(bo.toByteArray())); retValue = is.readObject(); } catch(IOException e){ e.printStackTrace(); } catch(ClassNotFoundException e){ e.printStackTrace(); } return retValue; } public static void main(String[] args) throws Exception { java.util.ArrayList list = new java.util.ArrayList(); list.add(1); System.out.println(deepClone(list)); list.add(2); System.out.println(list); }}