一个URL,可以根据数据库内容显示两个Wicket页面之一
One URL, which can display one of two Wicket pages based on database content
我想使用 Apache Wicket 实现以下目标。
我们要求 URL /xxxx 可以显示两个内容之一。
- 如果 "city" table(第 "url_name" 列)中有一个条目,那么我们应该显示 CityDetailPage。
- 如果 "venue" table(第 "url_name" 列)中有一个条目,那么我们应该显示 VenueDetailPage。
这些页面截然不同,有数百行各种 wicket 组件等等。
目前我们有两个不同的 URL(/city/xxx 和 /venue/xxx),它们已映射到应用程序中,并且运行良好。现在他们应该分享 URL.
我需要一些类似 "select id from city where url_name=?" 的逻辑,如果有一行显示 CityDetailPage,否则如果 "select id from venue where url_name=?" 则显示 VenueDetailPage,否则显示 404。
我考虑过的事情:
- 有一个包含两个部分的大页面,visible/invisible 根据找到的内容。但这很不雅观,这基本上是两个不同的页面。
- 有一个 Servlet,它查看路径并进行数据库查询,然后进行内部重定向(我们的 Servlet 引擎前面有 Apache)。也觉得不雅,在检票口外
- 也许某些页面只是显示另一个页面的某种 wicket 异常(但不改变 URL),不确定要使用哪种类型?
提前致谢!我被困住了:(
我建议使用自定义 IProvider
,即 mountPage("the/path", VenuePage.class)
而不是 mount(new MountedMapper("the/path", new MyClassProvider()))
,其中 MyClassProvider
实现 IProvider
和 returns 根据您的条件,#get()
中的不同页面 class。
我想使用 Apache Wicket 实现以下目标。
我们要求 URL /xxxx 可以显示两个内容之一。
- 如果 "city" table(第 "url_name" 列)中有一个条目,那么我们应该显示 CityDetailPage。
- 如果 "venue" table(第 "url_name" 列)中有一个条目,那么我们应该显示 VenueDetailPage。
这些页面截然不同,有数百行各种 wicket 组件等等。
目前我们有两个不同的 URL(/city/xxx 和 /venue/xxx),它们已映射到应用程序中,并且运行良好。现在他们应该分享 URL.
我需要一些类似 "select id from city where url_name=?" 的逻辑,如果有一行显示 CityDetailPage,否则如果 "select id from venue where url_name=?" 则显示 VenueDetailPage,否则显示 404。
我考虑过的事情:
- 有一个包含两个部分的大页面,visible/invisible 根据找到的内容。但这很不雅观,这基本上是两个不同的页面。
- 有一个 Servlet,它查看路径并进行数据库查询,然后进行内部重定向(我们的 Servlet 引擎前面有 Apache)。也觉得不雅,在检票口外
- 也许某些页面只是显示另一个页面的某种 wicket 异常(但不改变 URL),不确定要使用哪种类型?
提前致谢!我被困住了:(
我建议使用自定义 IProvider
,即 mountPage("the/path", VenuePage.class)
而不是 mount(new MountedMapper("the/path", new MyClassProvider()))
,其中 MyClassProvider
实现 IProvider
和 returns 根据您的条件,#get()
中的不同页面 class。