1

我真的很想在我的 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);  
    }  
}  

和应用容器:

@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 未捕获类型错误:无法读取未定义的属性“removeFromParent_0_g$”

小部件和模板名称相同,并且在同一个包中。我的小部件的创建就像文档显示的那样: http: //erraiframework.org/getting-started/index.html#ErraiUIPage

有人可以告诉我我在这里缺少什么吗?这方面的例子非常少,它们都假设一个完整的 Errai 项目。我还需要@EntryPoint 吗?我需要@PostConstruct 吗?Errai 甚至被设计成这样工作吗?

谢谢你的帮助。

4

2 回答 2

0

您的问题的答案在这里:https ://github.com/errai/errai-tutorial

您基本上需要迁移您的应用程序以使用 Maven,以便首先正确获取依赖项,然后在此项目中使用 POM 并将其捕捉到您的项目中。

然后你可以包含一个引导文件来添加一个@EntryPoint类,但这不是必需的,你可以Page在客户端路径中添加一个,例如:

com.mycompany.app.client
-->MyPage.html
-->MyPage.java

这里的java文件包含默认页面的地方,即

@Dependent
@Templated
@Page(role = DefaultPage.class)
public class MyPage extends Composite{}
于 2016-09-08T01:00:11.567 回答
0

是的,@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

现在您的@Templatedbean 不需要扩展 Composite。模板的根元素可作为@DataField等访问。

希望你会发现它有帮助。祝你好运!

于 2016-08-13T07:20:50.893 回答