GWT 通过单击按钮将数据保存在 TextBox 中
GWT save data in TextBox by clicking a Button
我有一个使用 GWT 包含文本框和按钮的简单应用程序,关键是当我在文本框中写一些东西并单击按钮时,文本框中的数据将保存在数据库中,这是我写的,但我不知道如何通过点击保存它:
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//method to save the data
}
});
您需要实现一个远程服务以供您的应用程序使用。
GWT 使用 RemoteService
来执行服务器任务。远程服务是定义远程方法的接口,它必须放在应用程序的共享 class 路径中。远程服务接口由服务器代码实现,以执行您希望它执行的实际操作。
客户端使用所谓的异步接口,它位于客户端 class 路径中,通常由 IDE 或特殊编译器目标为您生成。在 mvn 项目中,您会在 target/generated-sources 文件夹中找到它们。
那些由编译器实现并由您的代码使用 GWT.create()
实例化的异步接口。
异步接口具有与远程服务接口相同的方法,但所有方法的签名都已更改。它们没有 return 值,而是公开了一个 AsyncCallback<T>
处理程序,用于在服务器 returned 上进行远程调用后调用您的代码。 <T>
是您在服务器上的 RemoteService 接口中的方法的 return 类型。
保存数据的正确方法是让演示者 class 或 activity class 拥有异步服务实例。 activity/presenter 将从视图中获取值并将其发送到远程服务以存储到数据库中。
在您的点击处理程序中,您使用 activity 来保存数据,或者演示者将自己作为点击处理程序附加到视图。
gwtproject.org 教程部分中有大量代码示例展示了原理。
presenter/activity 中的调用将使用异步回调 class,如下所示:
backendSvc.saveData( textString, new AsyncCallback<Response>() {
void onSuccess(Response r) {
view.showMessage("Response saved");
}
void onError(Throwable caught) {
view.showError("Ouch", caught);
}
}
视图不应直接调用后端,如果您的应用程序增长,这会导致混乱。
我建议您查看 gwtproject 网站上的教程,真正尝试理解事件的流程。这个概念是理解 GWT 方式的基础。
请详细说明你的问题..我知道如何从文本框中保存数据库中的值,如果是的话,
- 从文本框中获取值
使用以下任一方法将值发送到服务器
- RPC
- RequestBuilder
将数据(值)推送到数据库
示例:
services.saveData(textValue, new AsyncCallback<Response>() {
public void onSuccess(Response response) {
showMessage("Saved Successfully");
}
public void onError(Throwable error) {
showError("Failed to Save Data");
}
};
如果您询问如何将 GWT 连接到您的服务器数据库,此 link 可能会对您有所帮助。
XML: The bridge between GWT and PHP
只需从文本框中获取输入值,然后post将其发送到您的服务器
我有一个使用 GWT 包含文本框和按钮的简单应用程序,关键是当我在文本框中写一些东西并单击按钮时,文本框中的数据将保存在数据库中,这是我写的,但我不知道如何通过点击保存它:
button.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//method to save the data
}
});
您需要实现一个远程服务以供您的应用程序使用。
GWT 使用 RemoteService
来执行服务器任务。远程服务是定义远程方法的接口,它必须放在应用程序的共享 class 路径中。远程服务接口由服务器代码实现,以执行您希望它执行的实际操作。
客户端使用所谓的异步接口,它位于客户端 class 路径中,通常由 IDE 或特殊编译器目标为您生成。在 mvn 项目中,您会在 target/generated-sources 文件夹中找到它们。
那些由编译器实现并由您的代码使用 GWT.create()
实例化的异步接口。
异步接口具有与远程服务接口相同的方法,但所有方法的签名都已更改。它们没有 return 值,而是公开了一个 AsyncCallback<T>
处理程序,用于在服务器 returned 上进行远程调用后调用您的代码。 <T>
是您在服务器上的 RemoteService 接口中的方法的 return 类型。
保存数据的正确方法是让演示者 class 或 activity class 拥有异步服务实例。 activity/presenter 将从视图中获取值并将其发送到远程服务以存储到数据库中。
在您的点击处理程序中,您使用 activity 来保存数据,或者演示者将自己作为点击处理程序附加到视图。
gwtproject.org 教程部分中有大量代码示例展示了原理。
presenter/activity 中的调用将使用异步回调 class,如下所示:
backendSvc.saveData( textString, new AsyncCallback<Response>() {
void onSuccess(Response r) {
view.showMessage("Response saved");
}
void onError(Throwable caught) {
view.showError("Ouch", caught);
}
}
视图不应直接调用后端,如果您的应用程序增长,这会导致混乱。
我建议您查看 gwtproject 网站上的教程,真正尝试理解事件的流程。这个概念是理解 GWT 方式的基础。
请详细说明你的问题..我知道如何从文本框中保存数据库中的值,如果是的话,
- 从文本框中获取值
使用以下任一方法将值发送到服务器
- RPC
- RequestBuilder
将数据(值)推送到数据库
示例:
services.saveData(textValue, new AsyncCallback<Response>() {
public void onSuccess(Response response) {
showMessage("Saved Successfully");
}
public void onError(Throwable error) {
showError("Failed to Save Data");
}
};
如果您询问如何将 GWT 连接到您的服务器数据库,此 link 可能会对您有所帮助。
XML: The bridge between GWT and PHP
只需从文本框中获取输入值,然后post将其发送到您的服务器