Gwt从Server更新TextArea

时间:2013-09-19 10:33:55

标签: java gwt

我在我的应用中创建了一个Textarea。我的服务器中有一种方法,即

              GreetingServiceImpl class

GreetingServiceImpl类中我的方法的示例代码是:

        public String greetServer(String input) throws IllegalArgumentException {
    System.out.println("input===>>" + input);
    String serverInfo = getServletContext().getServerInfo();
    System.out.println("serverinfo===>>" + serverInfo);
    String userAgent = getThreadLocalRequest().getHeader("User-Agent");
    System.out.println("User agent===" + userAgent);
    input = escapeHtml(input);
    System.out.println("2....input===>>" + input);
    userAgent = escapeHtml(userAgent);

    return "Hello, " + input + "!<br><br>I am running " + serverInfo
            + ".<br><br>It looks like you are using:<br>" + userAgent;
}   

现在在我的客户端,我将调用此方法,在调用此方法后,我想将setText设置为我的textarea。该文本应来自服务器。

   i.e, I have 4 sysout statements in this method.
  System.out.println("input===>>" + input);
 System.out.println("serverinfo===>>" + serverInfo);
  System.out.println("User agent===" + userAgent);
 System.out.println("2....input===>>" + input);

当这些语句打印到eclipse控制台时,同时我想在我的用户界面中按顺序打印(按照执行的顺序),即我的textarea。我不知道如何实现这一目标。请告诉我这是否可以做,如果是这样我怎么能实现?

PS:我正在寻找一种记录器类型功能,可以在执行任何服务器端方法时更新我的​​textarea。

2 个答案:

答案 0 :(得分:0)

可以使用支持Atmosphere和GWT的WebSockets将数据从服务器推送到客户端。

答案 1 :(得分:0)

为什么不使用RPC来电?它简单明了。

您只需在客户端创建Example.java和ExampleAsync类,并在服务器上创建实现。然后,您可以使用AsyncCallback调用实现。

例如:

 callback = new AsyncCallback() {
    public void onSuccess(Void result) {
      // Make what ever you want! For example, set the textarea
    }

另一方面,如果您希望服务器通知和更新客户端,您可以使用Server-Push 您还可以使用gwt-comet,它还通过http流式传输消息。