论坛首页 Web前端技术论坛

GWT Object Exporter ,GWT模块间传递对象

浏览 12083 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-11-29  
奇怪,我之前测试的class A implements IExportable不需要做这个操作。

怎么你那个还是出错?

发你的测试给我看看吧:
yongyuan.jiang@gmail.com
0 请登录后投票
   发表时间:2007-11-29  
按照樓主的意思寫成
存入:
	gwtSession.put("objectTest", AuthenticationHelper.helper.doExport(auth));


取出:
	Window.alert("objectTest getCredential -> " + ((Authentication) AuthenticationHelper.helper.doImport((JavaScriptObject) GWTSessionAccessor.get().get("objectTest"))).getCredential());


這次也是ClassCastException, 但變成 JavaScriptObject
[ERROR] Unable to load module entry point class myFrameTest.inner.client.Inner (see associated exception for details)
java.lang.ClassCastException: com.google.gwt.core.client.JavaScriptObject cannot be cast to com.google.gwt.core.client.JavaScriptObject
	at myFrameTest.inner.client.Inner.onModuleLoad(Inner.java:27)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:342)
	at com.google.gwt.dev.shell.BrowserWidget.attachModuleSpace(BrowserWidget.java:326)
	at com.google.gwt.dev.shell.ie.BrowserWidgetIE6.access$200(BrowserWidgetIE6.java:36)
	at com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.gwtOnLoad(BrowserWidgetIE6.java:70)
	at com.google.gwt.dev.shell.ie.BrowserWidgetIE6$External.invoke(BrowserWidgetIE6.java:125)
	at com.google.gwt.dev.shell.ie.IDispatchImpl.Invoke(IDispatchImpl.java:293)


Orz...
0 请登录后投票
   发表时间:2007-11-29  
ok了。

public class GWTSession implements IExportable {

HashMap map = new HashMap();

public Object putA(String key,Authentication value){
return map.put(key, value);
}

public Authentication getA(Object key) {
return (Authentication) map.get(key);
}
}

需要显示写出该类,exporter才会自动将他export和import.
0 请登录后投票
   发表时间:2007-11-29  
session.putA(new Authentication ());

session.getA("key");
0 请登录后投票
   发表时间:2007-11-29  
謝謝樓主的耐心指點, 已經能成功互相share 了, 雖然必須在GWTSession 定義所有可能要放入map 的class 的put /get method, 有點不便, 但至少滿足了GWTSession 應有的功能

嘗試了一下, put 不用另行寫putA, 用原本的put(String key, Object value) 已經可以, 但必須用public Authentication getA(String key)取出

gwt-object-exporter 的出現比網絡上以serialize/deserialize 的方法去share object between widget , 無論在易用性, 效率, 和即時同步性都實在好太多!

仍然期待樓主的應用示範.
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics