我真的很想在我的GWT(2.8)应用程序中使用Errai UI(3.2.4)。我已经有一个带有EntryPoint实现和onModuleLoad的设置。我有restGWT设置并与我的服务器(使用Jersey)进行交互。

我发现的所有文档均假设您正在构建一个完整的Errai项目,并使用forge插件从头开始。我不是。我只想使用模板内容和数据绑定。我正在使用准系统设置,甚至无法在应用程序中显示标签。

我有这个GWT入口点:

public class App implements EntryPoint
{
    @Inject
    private ApplicationContainer applicationContainer;

    public void onModuleLoad()
    {
        RootPanel.get("root").add(applicationContainer);
    }
}


和ApplicationContainer:

@Templated
public class ApplicationContainer extends Composite
{
    @DataField
    private Element applicationContainer = DOM.createDiv();


    @PostConstruct
    public void init()
    {
        GWT.log("Initializing");
    }
}


它是随附的模板:

<div id="applicationContainer" data-field="applicationContainer">
    Application Container
</div>


我应该在浏览器中看到“应用程序容器”,但是在浏览器控制台中出现此错误:

ComplexPanel.java:96未捕获的TypeError:无法读取未定义的属性'removeFromParent_0_g $'

小部件和模板的名称相同且位于相同的程序包中。我的窗口小部件已创建,就像文档所示:http://erraiframework.org/getting-started/index.html#ErraiUIPage

有人可以告诉我我在这里想念的吗?这样的示例非常少,并且都假设了一个完整的Errai项目。我还需要一个@EntryPoint吗?我需要@PostConstruct吗? Errai甚至设计成可以这样工作吗?

谢谢你的帮助。

最佳答案

是的,@EntryPoint批注很重要,我不确定您是否可以将此框架的一部分与其他方法混合使用。这并不意味着您需要使用所有模块,而是如果要使用的部件,则应该遵循Errai的准则。

请在此处查看示例入口点:
https://github.com/errai/errai/blob/3.2.4.Final/errai-demos/errai-jpa-demo-todo-list/src/main/java/org/jboss/errai/demo/todo/client/local/ClientEntryPoint.java

您还将在路径... / 3.2.4.Final/errai-demos/中找到更多示例

以上是关于Errai 3.x的信息。
另请注意,Errai 4.x仅与Errai UI有关,因此带来了一些更改。在这里很好地描述了它:
http://errai-blog.blogspot.com/2016/04/errai-400beta1-released.html

现在,您的@Templated bean不需要扩展Composite。模板的根元素可以通过@DataField等访问。

希望对您有所帮助。祝好运!

10-06 09:30