gpt4 book ai didi

hibernate - 我应该如何将排序添加到包含 Hibernate 内容的 Apache Wicket DataTable?

转载 作者:行者123 更新时间:2023-12-04 10:42:16 25 4
gpt4 key购买 nike

我有一个在 Wicket 1.5 中构建的现有数据表,如下所示:

页面的 java 文件。

public class ExamplePage extends WebPage {
public ExamplePage(){
List<IColumn<Example>> columns = new ArrayList<IColumn<Example>>();
columns.add(new PropertyColumn<Example>(Model.of("name"), "name"));
ExampleProvider provider = new ExampleProvider();

DataTable<Example> exampleTable = new DataTable<Example>("exampleTable", columns, provider, 10);
exampleTable.addTopToolbar(new HeadersToolbar(exampleTable, null));
exampleTable.addBottomToolbar(new NavigationToolbar(exampleTable));
add(exampleTable);
}
}

提供者
public class ExampleProvider extends SortableDataProvider<Example> {
@SpringBean
ExampleDao exampleDao;

public ExampleProvider() {
Injector.get().inject(this);
}

@Override
public Iterator<Example> iterator(int first, int count) {
List<Example> examples = exampleDao.find(first, count);
Iterator<Example> exampleIterator = examples.iterator();
return exampleIterator;
}

@Override
public IModel<Example> model(Example object) {
return Model.of(object);
}

@Override
public int size() {
return exampleDao.count();
}
}

html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:wicket="http://wicket.apache.org"
xml:lang="en"
lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<wicket:extend>
<table wicket:id="exampleTable" />
</wicket:extend>
</body>
</html>

我尝试将排序参数添加到 PropertyColumn 以便该列可点击但
不会做任何事情。
columns.add(new PropertyColumn<Example>(Model.of("name"), "name", "name"));

这产生了以下错误。
Last cause: null
WicketMessage: Exception in rendering component: [ [Component id = header]]

java.lang.NullPointerException
at org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink$CssModifier.onComponentTag(OrderByLink.java:190)
at org.apache.wicket.Component.renderComponentTag(Component.java:3885)
at org.apache.wicket.Component.internalRenderComponent(Component.java:2506)
at org.apache.wicket.MarkupContainer.onRender(MarkupContainer.java:1576)
at org.apache.wicket.Component.internalRender(Component.java:2345)
at org.apache.wicket.Component.render(Component.java:2273)
at org.apache.wicket.MarkupContainer.renderNext(MarkupContainer.java:1474)
...

我试过添加 setSort(new SortParam("name", true));到 Provider 构造函数

我还尝试将完整的后端添加到 DAO,以便返回表的排序部分。

我还尝试向页面的属性文件添加一个字段,类似于位于底部的第一个资源。

我所有的尝试都会导致相同的错误。我想我一定遗漏了一些简单的东西,但我检查了很多例子并没有发现任何东西。

我已经检查过的资源包括以下内容:
  • https://cwiki.apache.org/WICKET/simple-sortable-datatable-example.html
  • http://wicketstuff.org/wicket14/repeater/
  • Apache Wicket 食谱
  • 最佳答案

    您需要通过扩展 SortableDataProvider 来定义自定义数据提供者然后传入 HeadersToolbar .例如:

    new HeadersToolbar(exampleTable, exampleSortableDataProvider)

    关于hibernate - 我应该如何将排序添加到包含 Hibernate 内容的 Apache Wicket DataTable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7854015/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com