wicket wicket:链接

时间:2011-01-15 15:59:25

标签: wicket

我正在尝试以下示例。 ChangeTextOnClick.html工作正常,因为它与包含以下代码段(WicketLink.html)的文件位于同一目录中。但HelloWorld.html不能像在另一个包中那样工作。我如何在不同的包装上引用页面。

 <wicket:link>
        <ul>
            <li>
                <a href="ChangeTextOnClick.html">Change Text On Click</a>
                <a href="com.merc.wicket.main/HelloWorld.html">Back</a>
            </li>
        </ul>
    </wicket:link>

我的网页位于以下目录结构中

com.merc.wicket.link.WicketLink.java and .html
com.merc.wicket.link.ChangeTextOnClick.java and .html
com.merc.wicket.main.HelloWorld.java and .html

3 个答案:

答案 0 :(得分:10)

在Wicket中,您通常会使用Java中的链接引用另一个html文件,让Wicket为您生成href。您可以在修复URL(名为Bookmarkable Link,因为它们独立于用户会话)下安装页面,或者只使用链接。

对于Bookmarkable链接,您将在Wicket应用程序类的init()中执行以下操作:

public class WicketApplication extends WebApplication{

    protected void init() {
        super.init();
        mountBookmarkablePage("/ChangeTextOnClick", ChangeTextOnClick.class);
        mountBookmarkablePage("/HelloWorld", HelloWorld.class);
    }
}

有了这个,您总是可以在给定的URL下找到这两个页面。

您可以在MyPage.java中使用此链接创建指向该链接的链接:

add(new BookmarkablePageLink<ChangeTextOnClick>("myExampleLink"
                   ,ChangeTextOnClick.class)

并在相应的MyPage.html中:

<a href="thisGetsReplacedAtRuntime" 
                  wicket:id="myExampleLink">Change Text On Click</a>

如果您不希望链接是可收藏的,则您不需要init()中的mountBookmarkablePage内容并使用链接而不是BookmarkablePageLink。

看看Wicket wicki,你会在那里找到很多有用的信息。

答案 1 :(得分:5)

事实证明我的猜测是正确的所以这里是答案:

Wicket使用/作为路径分隔符,而不是.

<wicket:link>
    <ul>
        <li>
            <a href="ChangeTextOnClick.html">Change Text On Click</a>
            <a href="/com/merc/wicket/main/HelloWorld.html">Back</a>
        </li>
    </ul>
</wicket:link>

是一种解决方案,或使用相对路径:

<wicket:link>
    <ul>
        <li>
            <a href="ChangeTextOnClick.html">Change Text On Click</a>
            <a href="../main/HelloWorld.html">Back</a>
        </li>
    </ul>
</wicket:link>

答案 2 :(得分:0)

上面的答案是完美的。它不仅需要在项目的不同文件夹中,而且它可以在系统文件夹中的任何位置。如果配置正确完成,可以引用该文件在WicketApplication文件中。