我有一个包含TextBox和Button的简单应用程序,使用GWT,重点是当我在TextBox中写入内容并单击Button时,TextBox中的数据将保存在数据库中,这是我写的,但是我不知道如何通过点击来保存它:
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//method to save the data
}
});
答案 0 :(得分:1)
您需要实现一个供您的应用程序使用的远程服务。
GWT使用RemoteService
执行服务器任务。远程服务是定义远程方法的接口,它必须放在应用程序的共享类路径中。远程服务接口由servercode实现,以执行您希望它执行的实际操作。
客户端使用所谓的Async接口,该接口位于客户端类路径中,并且通常由IDE或特殊编译器目标为您生成。在mvn项目中,您将在target / generated-sources文件夹中找到它们。
这些异步接口由编译器实现,并由代码使用GWT.create()
实例化。
async接口与远程服务接口具有相同的方法,但所有方法都具有更改的签名。它们不是返回值,而是公开一个AsyncCallback<T>
处理程序,用于在返回服务器上的远程调用后调用代码。 <T>
是服务器上RemoteService接口中方法的返回类型。
保存数据的正确方法是使用具有异步服务实例的演示者类或活动类。活动/演示者将从视图中获取值并将其发送到远程服务以存储到数据库中。
在您的点击处理程序中,您使用活动来保存数据,或者演示者将自己作为点击处理程序附加到视图中。
有很多代码示例在gwtproject.org教程部分中显示了原理。
演示者/活动中的调用将使用异步回调类,如下所示:
backendSvc.saveData( textString, new AsyncCallback<Response>() {
void onSuccess(Response r) {
view.showMessage("Response saved");
}
void onError(Throwable caught) {
view.showError("Ouch", caught);
}
}
视图不应直接调用后端,如果应用程序增长,这将导致混乱。
我建议你检查gwtproject网站上的教程,并真正尝试了解事件的流程。这个概念是理解GWT方式的基础。
答案 1 :(得分:0)
请详细说明你的问题..我理解如何从文本框中保存数据库中的价值,如果是这样的话,
使用以下任何一种方法将值发送到服务器
将数据(值)推送到数据库
示例:
services.saveData(textValue, new AsyncCallback<Response>() {
public void onSuccess(Response response) {
showMessage("Saved Successfully");
}
public void onError(Throwable error) {
showError("Failed to Save Data");
}
};
答案 2 :(得分:0)