我真的很想在我的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
等访问。
希望对您有所帮助。祝好运!