有兴趣的兄弟(牛人)们来说说(猜猜)GAE的调用原理啊

作者尝试使用GAE的Eclipse插件并运行了demo程序。通过分析源代码发现,GAE在web界面控制方面采用了类似Apache Wicket的窗体组件方式。文章探讨了GAE如何将server端的逻辑绑定到前端界面的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天下了GAE的Eclipse插件,试着用了它的demo程序,觉得很有趣。

看了DEMO的源代码,感觉GAE在web界面的编辑控制上类似Apache Wicket的思路,将web前端编码采用窗体组件的方式实现了,确实很强。

对于用惯了传统web编程模型的我而言,能够理解GAE中业务逻辑放在server端实现的结构;但对于编写在server端的界面事件是如何绑定到web前端的感到很疑惑,我们从demo中看的出,事件和控件都是在界面生成后通过ID动态绑定上去的,[color=red]那么GAE是如何将后端的java handler中的逻辑绑定到前台呢?(难道将hanlder中的java代码转译成前台的js?)[/color]
这里要说的是,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端获取呢?难道是全部嘛?

请熟悉这块技术的兄弟牛人们说说看,给点思路也行啊!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值