我在GWT中有服务器端对象,我无法移动到客户端(即:不是@GwtCompatible)。我想在页面上使用它们。我可以使用gwt将它们渲染为html并将其发送给客户端吗?
答案 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类复制到该对象,将其传输到客户端,并照常使用它。