SmartGWT 确实是很好的开发平台,写界面轻松美观,就是缺少合适的上传控件,至少我没有在showcase里找到合适的。
google 的结果是,用以下这种方式比较好, apache的上传控件,配合 iframe实现 ajax 局部刷新的效果。但是现成的代码无法直接套用,smartGWT对应的 iframe 是 HTMLPane,但是在把form的返回目标设置为 HTMLPane的 ID时,总是要弹出一个窗口来,让吾徒唤奈何。最后尝试多次发现可以使用 GWT里的 HTML 控件,直接把控件的内容设置为 iframe 的 html 代码,然后弹出窗口消失了,原因似乎是如果把 submit 的目标设置为 iframe 的 name 属性时才不会弹出窗口,而SmartGWT中封装 iframe 的 HTMLPane无法设置这个属性,至少我目前找不到 办法。总算过了这坎。
代码很简单: HTML pane = new HTML(" name=/"dpoh/" style=/"width:0;height:0;border:0/">");
最后的要求是可以实现服务端回调客户端的代码,在网上找了一个比较通用的,可以用,效果不错。