Hyperlink Wicket:使用什么链接进行操作+;重定向到当前页面

Hyperlink Wicket:使用什么链接进行操作+;重定向到当前页面,hyperlink,wicket,Hyperlink,Wicket,虽然我已经使用Wicket几年了,但我仍然不知道在这个场景中使用什么样的链接组件: 我想展示一个无状态的可书签页面,它列出了一个数据库中的两个条目,该数据库由该可书签页面的两个页面参数进行查询。每个条目都应该是可删除的(使用普通的确认对话框)。确认模式“您确定要删除此项目吗”对话框后,它应该重定向到相同的无状态可书签页面,因此相同的页面参数会导致再次查询数据库,现在显示删除后的条目 我用ListDataProvider创建了一个DataView组件来显示条目。删除链接的创建方式如下: ... n

虽然我已经使用Wicket几年了,但我仍然不知道在这个场景中使用什么样的链接组件:

我想展示一个无状态的可书签页面,它列出了一个数据库中的两个条目,该数据库由该可书签页面的两个页面参数进行查询。每个条目都应该是可删除的(使用普通的确认对话框)。确认模式“您确定要删除此项目吗”对话框后,它应该重定向到相同的无状态可书签页面,因此相同的页面参数会导致再次查询数据库,现在显示删除后的条目

我用
ListDataProvider
创建了一个
DataView
组件来显示条目。删除链接的创建方式如下:

... new ListDataProvider<>(entries) {
public void populateItem(Item<MyEntry> item) {
    final MyEntry entry = item.getModelObject();
    ...


    item.add(new Link<Long>("delete", Model.of(entry.getId())) {
        public void onClick() {
          // todo: delete
          System.out.println("delete " + getModelObject().longValue());
          getRequestCycle().setResponsePage(MyPage.class, getPageParameters());
        }
    }
    ...
}
。。。新建ListDataProvider(条目){
公共无效填充项(项){
最终MyEntry条目=item.getModelObject();
...
添加(新链接(“删除”,Model.of(entry.getId())){
公共void onClick(){
//todo:删除
System.out.println(“删除”+getModelObject().longValue());
getRequestCycle().setResponsePage(MyPage.class,getPageParameters());
}
}
...
}

不幸的是,页面版本号会随着每次“删除”的单击而增加。

如果页面的url中已经有pageId,那么它首先就不是无状态的


在您的情况下,您要求使用
无状态链接
。但是您必须确保页面中没有使用任何其他有状态组件。您可以使用wicket devutils的
无状态检查器
侦听器来查找其他有状态的内容。

如果页面的url中已经有pageId,那么它首先是无状态的

在您的情况下,您需要
无状态链接
。但您必须确保页面中没有使用任何其他有状态组件。您可以使用wicket devutils的
无状态检查器
侦听器查找其他有状态组件