簡體   English   中英

Wicket 人類可讀的 URL

[英]Wicket human-readable URLs

在 ASP.NET MVC 之后開始學習 Wicket,對管理其 URL 感到有點困惑。 這是代碼:

應用

package com.test.wicketapp1;

import org.apache.wicket.protocol.http.WebApplication;

public class WicketApplication extends WebApplication {
    public WicketApplication() {
        mountPage("/page1", HomePage.class);
        mountPage("/page2", Page2.class);       
    }

    @Override public Class<HomePage> getHomePage() {
        return HomePage.class;
    }
}

主頁

package com.test.wicketapp1;

import java.io.IOException;

import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.WebPage;

public class HomePage extends WebPage {
    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters) throws IOException {
        BookmarkablePageLink<Page2> bookmarkablePageLink = new BookmarkablePageLink<Page2>("gopage2link", Page2.class);
        add(bookmarkablePageLink);
    }
}

主頁標記

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
    <head>
        <title>Apache Wicket Quickstart</title> 
    </head>
    <body>
        <a href="#" wicket:id="gopage2link">go page 2</a>
    </body>
</html>

我想要的很簡單。 我預計會有 2 個網址:HomePage.class 的“/page1”和 Page2.class 的“/page2”,然后我的主頁有一個導航到 Page2 的鏈接,當主頁呈現時,該鏈接應該有一個 URL “/第2頁”。

當我運行應用程序和 go 到主頁時,它呈現如下:

<!DOCTYPE html>
<html xmlns:wicket="http://wicket.apache.org">
    <head>
        <title>Apache Wicket Quickstart</title> 
    </head>
    <body>
        <a href="./wicket/bookmarkable/com.test.wicketapp1.Page2" wicket:id="gopage2link">go page 2</a>
    </body>
</html>

我希望有類似的東西:

<a href="/page2" wicket:id="gopage2link">go page 2</a>

反而。 我錯過了什么?

問題是——我應該使用應用程序的init方法而不是 ctor 來定義映射。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM