如何将除一些URL之外的所有URL安装到单个页面?

时间:2014-11-10 16:57:44

标签: wicket single-page-application wicket-6

我正在处理单页应用程序,并希望在我的主页(Index.class)上安装任意URL,例如

/index
/home
/foo
/somethingelse
...

但是,不应该处理某些URL,以提供静态资产并访问REST api,例如:

/api
/images
/css

所以我的问题是,如何配置Wicket将除了一些特殊URL之外的所有URL路由到单个页面。我想我必须实现一个自定义RequestMapper并删除默认值。也许是这样的:

public class WicketApplication extends WebApplication {

    @Override
    public Class<? extends WebPage> getHomePage() {
        return Index.class;
    }

    @Override
    public void init() {

        mount(new IRequestMapper() {
           // routing logic goes here
        });

        mountPage("/${page}", Index.class);
    }
}

另外,我将$ {page}定义为URL参数,以动态注入一些配置。

1 个答案:

答案 0 :(得分:0)

我没有完整的代码图片,但您可以将Wicket应用程序安装到不同的路径(例如:/ myapp),并使用另一个路径来获取静态/ REST资源。