GWT通过单击按钮在TextBox中保存数据

时间:2015-03-28 07:47:37

标签: gwt

我有一个包含TextBox和Button的简单应用程序,使用GWT,重点是当我在TextBox中写入内容并单击Button时,TextBox中的数据将保存在数据库中,这是我写的,但是我不知道如何通过点击来保存它:

    button.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {

            //method to save the data

        }
    });

3 个答案:

答案 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)

请详细说明你的问题..我理解如何从文本框中保存数据库中的价值,如果是这样的话,

  1. 从文本框中获取价值
  2. 使用以下任何一种方法将值发送到服务器

    • RPC
    • RequestBuilder
  3. 将数据(值)推送到数据库

  4. 示例:

    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)

如果您询问如何将GWT连接到服务器数据库,此链接可能会有所帮助。

XML: The bridge between GWT and PHP

只需从文本框中获取输入值并将其发布到您的服务器