基于Errai-UI的GWT应用程序导航

时间:2013-02-28 01:50:15

标签: java gwt errai

我在使用基于Errai-UI的GWT应用程序时遇到了一些问题,试图创建一个带有导航标签的页面。我面临的问题是导航和页脚没有被渲染,似乎我的应用程序WelcomePage是唯一在浏览器上呈现的页面:

@Dependent
@Templated("#home")
@Page(startingPage=true)
public class WelcomePage extends Composite { 
 // stuff
}

上述WelcomePage的关联HTML是唯一在浏览器上呈现的HTML。

Bootstrap代码:

@Templated("#main")
@ApplicationScoped
@EntryPoint
public class Bootstrap extends Composite
{

    @Inject
    Navigation navigation;

    @Inject @DataField
    private NavBar navbar;

    @PostConstruct
    public void buildUI()
    {
        RootPanel.get().add(navigation.getContentPanel());
    }

}

这是相应的httml:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta charset="utf-8">
    <title>Title</title>
    <link href="style.css" rel="stylesheet" type="text/css">
</head>
<body>
    <div data-field="main">
        <!--top part start -->
        <div id="top">
            <a href="index.html"><img src="images/logo.gif" alt="individual" width="286" height="66" border="0" /></a>
            <div data-field="navbar">Navbar Goes here</div>
        </div>
        <!--top part end -->

        <div data-field="content"></div>

        <!--footer start -->
        <div id="footerMain">
            <div id="footer">
                <ul>
                        <li><a href="#">Home</a>|</li>
                </ul>
            </div>
        </div>
        <!--footer end -->          
    </div>
    <!-- main end -->
</body>
</html>

我的应用程序运行正常,只是导航和页脚没有呈现。我能错过什么?

2 个答案:

答案 0 :(得分:1)

嗯,我认为这是因为你只是在DOM中添加了实际的内容面板。 DOM是有向无环图,因此不能有重复的注释。因此,当您使用RootPanel.get()。add(navigation.getContentPanel())将内容面板显式添加到DOM时,浏览器将使用

表示的子树替换整个DOM树。

答案 1 :(得分:0)

解决方案是:

@PostConstruct
public void buildUI()
{
    content.add(navigation.getContentPanel()); // Just a SimplePanel with data-field in the Bootstrap html
    RootPanel.get("rootPanel").add(this);
}