0

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

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

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

引导代码:

@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());
    }

}

这是相应的html:

<!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>

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

4

2 回答 2

1

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

于 2013-02-28T17:34:48.337 回答
0

解决方案是:

@PostConstruct
public void buildUI()
{
    content.add(navigation.getContentPanel()); // Just a SimplePanel with data-field in the Bootstrap html
    RootPanel.get("rootPanel").add(this);
}
于 2013-03-05T16:42:32.850 回答