我想更改 Wicket 为 URL 子集实例化我的 Page
实例的方式。通常,我会使用 mount()
将一个类映射到一个 URL,在这种情况下,Wicket 会选择该类上可用的构造函数之一并将其实例化。
我的应用程序的一部分是简单的 CRUD 操作,它们在不同的实体类型之间有很多共同点。我已经将公共(public)方面分解为一些工厂和帮助程序类,现在我的页面有一个类层次结构,如下所示:
模板页面
|
抽象实体页
| |
AbstractVenuePage AbstractEventPage
| | | |
ViewVenuePage EditVenuePage ViewEventPage EditEventPage
我想削减最后两个级别,因为随着更多实体类型的添加,层次结构开始蔓延,并且这些类中剩下的代码很少,可以轻松地分解为更通用的对象。
将 AbstractEntityPage
转换为一个类 EntityPage
相当容易,该类可以根据需要插入特定组件。我通常会使用 Builder 来执行此操作,但我不确定如何告诉 Wicket 使用它?我在 API 文档中找不到相关的钩子(Hook)。
最佳答案
您可以将默认的 IPageFactory 替换为 org.apache.wicket.settings.ISessionSettings.setPageFactory(IPageFactory) 并使用不同的策略来实例化页面(如果它是特殊的)。
关于wicket - (如何)我可以提供一个自定义类来在 Wicket 中设置页面吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6764448/