我正在尝试在 Wicket 中实现通用搜索表单/面板。表单应允许在实体中的多个字段中进行搜索(使用 DAO 模式),以便过滤 ListView 或 DataView 的输出。做这个的最好方式是什么?我曾想过使用扩展的 DataProvider 来做到这一点,但我还没有真正看到任何真实的例子。
有没有人实施过这样的事情?一些指针会很好。
编辑
一个可能有助于确定答案方向的附加问题:
- Wicket 模型是否与 DataProviders 结合得很好?
您可以使用搜索方法扩展 IDataProvider:
public interface SearchableDataProvider<T> extends IDataProvider<T> {
public void setSearchQuery(String... query);
public void clearSearchQuery();
@Override
public Iterator<? extends T> iterator(int first, int count);
@Override
public int size();
}
并在您的 EntityManager 中实现此接口,例如 UserManager、ArticleManager 或 AccountManager。