是否有可能在GWT中的服务器端呈现html?

时间:2011-04-14 02:54:24

标签: java gwt

我在GWT中有服务器端对象,我无法移动到客户端(即:不是@GwtCompatible)。我想在页面上使用它们。我可以使用gwt将它们渲染为html并将其发送给客户端吗?

1 个答案:

答案 0 :(得分:4)

嗯,您当然可以在服务器上构建HTML代码段,例如像这样:

服务器端:

public class MyServiceImpl extends RemoteServiceServlet implements MyService {

  public String getHtmlSnippet(String param) {

    String html = buildHtmlSnippetInASafeWay(param); // Use any (safe) HTML
                                                     // builder you like. (this
                                                     // is not GWT related!)
    return html;
  }
}

客户方:

myService.getHtmlSnippet(myParam, new AsyncCallback<String>() {

  @Override
  public void onSuccess(String result) {
    myParent.add(new HTML(result));
    // or: myElem.setInnerHTML(result);
  }

  @Override
  public void onFailure(Throwable caught) {
    // ...
  }
});

但更好的解决方案可能是创建一个简单的数据对象,将您需要的数据从非GwtCompatible类复制到该对象,将其传输到客户端,并照常使用它。