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

}

そしてこれは対応する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>

私のアプリケーションは正常に動作しますが、ナビゲーションとフッターがレンダリングされていないだけです。何が欠けている可能性がありますか?

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 に答える