java – 使用GWT将数据对象从客户端传输到服务器以保持数据的方
如果您使用JPA或其他类型的持久性,您可能有办法保存通过ajax发送到客户端的记录.
编辑:接口是用GWT完成的,所以所有ajax调用都是经典的java方法(转换为javascript等价) 让我们把类Person作为数据库中的实体. 当您通过ajax从服务器加载某人时,通常会向客户端发送一个Person对象. 在人物编辑器中,您可以显示姓名,生日和电子邮件.编辑Person对象时,您可能希望显示id. 有两种情况: >保存人员:只能更改电子邮件,但您可以显示ID 将刚刚编辑的数据发送到服务器时,您的进展方式是什么? 我看到几种方法: >发送一个Person对象.在这种情况下,您必须处理您持久存储的数据,而不仅仅是让您从客户端收到的人物对象持久化模式,因为黑客可以发送您可能不想更改的数据(并且您不能信任接口以禁用这些数据)变化).在这种情况下,也有几种方法: >使用两个函数(保存并创建),在服务器上创建一个新的Person对象(如果你在save方法中,则通过id加载持久化实例)并将你想要的所有字段从客户端Person对象复制到持久化的对象 >将数据发送到服务器(电子邮件,姓名,ID(编辑时)).执行此操作时,创建一个新的Person对象(或加载持久的对象)并将数据复制到此持久化实例. 总结一下,您有以下方法签名之一(仅适用于编辑案例): >人员savePerson(人); 我看到每种方法的利弊.例如,第一个允许快速更改P??erson模型而不修改所有savePerson调用.但它比第二种方法更难以理解什么是真正节省的. 我不知道什么是最好的,如果你知道另一种方法.那么,你好吗? 解决方法
使用域对象进行数据传输总是很好.在GWT中,您必须定义接口并标记Rpc BeanProxies.作为项目演变的一部分,您需要向对象添加其他字段.如果使用的是使用数据属性而不是对象的接口,则会不断更改它们,并且方法签名变得笨拙且不可读.
但是,某些人要求将持久域实体与业务域分开.在这种情况下,可以使用属性复制(apache commons-bean utils). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |