前端有个list,需要以此存库时,一般情况下应该怎么做呢,我们会在前端循环这个list,把每一行的内容放进一个string【】中,然后后台处理,取出值,这样比较麻烦。
现在我发现一个简单的做法。例如:
public A{
private String age;
private String number;
private List<B> listB;
}
public B{
private String name;
private String sex;
}
前端如果有这个list的话,这需要吧list中的名字改为 name = "listB[index].name" 或者 name = "listB[index].sex",就会通过自动封装进listB中。
2、对象的序列化,对象如果想序列化,对象必须实现Serialization接口。
//将新得到的用户信息与当前用户信息序列化
ByteArrayOutputStream baos;
ObjectOutputStream out = null;
baos = new ByteArrayOutputStream(); //
try {
out = new ObjectOutputStream(baos);
out.writeObject(staff1);
out.writeObject(staff2);
} catch (IOException e) {
throw new Exception();
}finally{
out.close();
}
//序列化的对象转为字节数组
byte[] byteObject = baos.toByteArray();
//将前后两次用户信息赋值
staffChange.setAfter(byteObject); // staffChange对象中有一个 private byte[] after,属性
反序列化得到对象,
ByteArrayInputStream bais;
ObjectInputStream in = null;
Staff staff = null;
try {
bais = new ByteArrayInputStream(after);
in = new ObjectInputStream(bais);
in.readObject();//放进的是堆中,先进先出,存放的时候,先放的修改前的,所以先读出来一份
staff=(Staff) in.readObject(); //先读出来一份后,接下来才是修改后的,然后获取到了
} catch (IOException ex) {
} catch (ClassNotFoundException ex) {
}finally{
try {
in.close();
} catch (IOException e) {
}
}
return staff;
反序列化存库,在个人信息变更中!!!