我正在开发一个单页应用程序,并希望在我的主页(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 参数以动态注入一些配置。