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

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

看了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() {
							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端获取呢?难道是全部嘛?

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

你可能感兴趣的:(GAE,GWT,Ajax,JavaScript,Google)