该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-09
最后修改:2009-04-09
看了DEMO的源代码,感觉GAE在web界面的编辑控制上类似Apache Wicket的思路,将web前端编码采用窗体组件的方式实现了,确实很强。 对于用惯了传统web编程模型的我而言,能够理解GAE中业务逻辑放在server端实现的结构;但对于编写在server端的界面事件是如何绑定到web前端的感到很疑惑,我们从demo中看的出,事件和控件都是在界面生成后通过ID动态绑定上去的,那么GAE是如何将后端的java handler中的逻辑绑定到前台呢?(难道将hanlder中的java代码转译成前台的js?) 这里要说的是,GAE绑定的不仅仅是一个事件。因为在后台的Handler处理中有如下语句: private void sendNameToServer() { sendButton.setEnabled(false); String textToServer = nameField.getText(); textToServerLabel.setText(textToServer); serverResponseLabel.setText(""); greetingService.greetServer(textToServer, new AsyncCallback<String>() { public void onFailure(Throwable caught) { // Show the RPC error message to the user dialogBox .setText("Remote Procedure Call - Failure"); serverResponseLabel .addStyleName("serverResponseLabelError"); serverResponseLabel.setHTML(SERVER_ERROR); dialogBox.center(); closeButton.setFocus(true); } ...... ...... } 注意该语句“String textToServer = nameField.getText();”,这句话是在server端执行的,那么client端如何事先知道要传回哪些input的值来提供server端获取呢?难道是全部嘛? 请熟悉这块技术的兄弟牛人们说说看,给点思路也行啊! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-09
它那个demo是GWT,你看GWT的文档就可以了,是用Java生成HTML/Javascript
|
|
返回顶楼 | |
发表时间:2009-04-09
QuakeWang 写道 它那个demo是GWT,你看GWT的文档就可以了,是用Java生成HTML/Javascript
感谢指路 更希望有兄弟能简明的说说GWT的设计思路 (以便看的时候更好理解一些) |
|
返回顶楼 | |
发表时间:2009-04-09
引用 那么GAE是如何将后端的java handler中的逻辑绑定到前台呢?(难道将hanlder中的java代码转译成前台的js?)
事实上差不多就是这么干的... |
|
返回顶楼 | |
发表时间:2009-04-14
[align=left][/align]
呵呵,GWT就是利用ajax和服务器生成的js脚本到前端,用java的方式去写js脚本这点是gwt最核心的思想,因为js脚本的种种弊端,而导致程序员很难习惯 |
|
返回顶楼 | |
发表时间:2009-04-14
lemanli 写道 [align=left][/align]
呵呵,GWT就是利用ajax和服务器生成的js脚本到前端,用java的方式去写js脚本这点是gwt最核心的思想,因为js脚本的种种弊端,而导致程序员很难习惯 3Q,这个回答的很到位, |
|
返回顶楼 | |
发表时间:2009-04-14
最后修改:2009-04-14
再问lemanli兄一个问题,GWT是在什么时候将java代码翻译成js的?包括事件响应的handler,应该是在页面生成的时候就翻译了吧?
如果是在响应请求时才翻译,就比较诡异了(想不通),呵呵! |
|
返回顶楼 | |
发表时间:2009-04-14
linliangyi2007 写道 再问lemanli兄一个问题,GWT是在什么时候将java代码翻译成js的?包括事件响应的handler,应该是在页面生成的时候就翻译了吧? 如果是在响应请求时才翻译,就比较诡异了(想不通),呵呵! 应该是在响应请求时才翻译,因为GWT有自己的一堆的小类库,所以效率问题总比在客户端翻译强 具体不是很清楚,但是估计就是利用filter或interceptor的时候,也就是最终形成了一个页面返回流的过程 |
|
返回顶楼 | |
发表时间:2009-04-14
lemanli 写道 linliangyi2007 写道 再问lemanli兄一个问题,GWT是在什么时候将java代码翻译成js的?包括事件响应的handler,应该是在页面生成的时候就翻译了吧? 如果是在响应请求时才翻译,就比较诡异了(想不通),呵呵! 应该是在响应请求时才翻译,因为GWT有自己的一堆的小类库,所以效率问题总比在客户端翻译强 具体不是很清楚,但是估计就是利用filter或interceptor的时候,也就是最终形成了一个页面返回流的过程 但如果是响应请求时才翻译,那我提交请求之前的页面控件间的控制逻辑(这部分应该是写在handler上的,如:disable页面上的某个输入框)不是没法执行,因为要等请求到达服务端是,handler才解析?!而且我要提交哪些数据,服务端又怎么知道呢?要是服务端要求的数据,我没有提交,不是没得处理了! |
|
返回顶楼 | |
发表时间:2009-04-14
GWT自带一个编译器,可以将符合GWT规范的部分代码编译成javascript
运行时生成javascript的可以看看ECHO2 |
|
返回顶楼 | |