【问题标题】:Use Errai Ui with GWT将 Errai Ui 与 GWT 一起使用
【发布时间】:2016-08-07 03:35:22
【问题描述】:

我真的很想在我的 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 Uncaught TypeError: Cannot read property 'removeFromParent_0_g$' of undefined

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

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

感谢您的帮助。

【问题讨论】:

  • 你检查过我们的答案吗?

标签: java gwt errai


【解决方案1】:

是的,@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 UI,Errai 4.x 会带来一些变化。这里描述得很好: http://errai-blog.blogspot.com/2016/04/errai-400beta1-released.html

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

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

【讨论】:

    【解决方案2】:

    您的问题的答案在这里: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{}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多