java - Wicket 口,返回上一页

标签 java wicket

我有一个数据表。我在其底部添加了 NavigationToolBar

当我单击页码(例如 3),然后单击表格单元格中的链接时,它会转到另一页。然后我单击顶部的链接,该链接返回到数据表的第一页。但我想返回到单击单元格中的链接时所在的同一页面(第 3 页)。

如何编写一段类似于浏览器后退按钮的代码? (类似于 javascript、history.go(-1))

最佳答案

假设您使用 setResponsePage() 返回带有数据表的页面,您将返回到页面的新实例,在单击单元格链接之前没有有关其状态的信息。

据我所知,您有两种方法来处理这种情况:

  1. 您可以将所有相关信息传递给详细信息页面的构造函数,以便使用 setResponsePage 中的 DataTable 在页面中“重建状态”(在这种情况下,页面索引可能是足够的)。我之前在搜索结果页面中使用过这种方法,将所有搜索条件传递到详细信息页面,然后再次将其传递回搜索页面以执行相同的搜索。

  2. 您还可以通过将对包含表格的页面的引用传递给通过链接转到的页面,并使用 PageLink 链接回相同的 来解决此问题>页面,如 this thread 中建议的那样在 Wicket 用户列表中,或在 setResponsePage() 中使用它。

我会选择第一个选项,因为将 Page 引用传递到另一个页面可能很危险,并且最终可能会在详细信息页面中序列化整个 DataTable 页面,并且 PageLink 已被弃用。请参阅this discussion在 Wicket 用户列表中了解详细信息。

要详细说明一下,您可以使用 DataTable.getCurrentPage()Link.onClick() 中将当前页码传递给 DetailPage,将其存储在 int 成员中,然后将其传递回 DataTable 页面以使用它在 DataTable.setCurrentPage() :

 public DataTablePage extends Page {
      private DataTable dataTable;
      public void setDataTablePage(int page){
            dataTable.setCurrentPage(page);
      }   
      // .....
     // DataTable cell link onclick
     public void onClick(){
         int pageNumber = dataTable.getCurrentPage();
         DetailPage detailPage = new DetailPage(id, params, pageNumber);
         setResponsePage(page);
     }          
 }

 public class DetailPage extends Page {
     int pageNumber;
     public DetailPage(String id, Object params, int pageNumber){
         //...
         this.pageNumber = pageNumber;
         //...
     }
     private void backToTablePage(){
          DataTablePage dataTablePage = new DataTablePage(id, params);
          dataTablePage.setDataTablePage(pageNumber);
          setResponsePage(dataTablePage);
     }
 }

关于java - Wicket 口,返回上一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7686933/

相关文章:

java - 接受通用通配符,但不接受 T 类型

java.lang.IllegalStateException : this kind of handler cannot be attached to multiple components

css - 使用带有 css 的 apache wicket id 来操作文本

java - Spring Data Repository 方面的建议不起作用

java - RDF+XML 响应 - 缺少 xml 版本标记

apache - 使用 wicket 进行单元测试时如何设置自定义 session ?

jquery-ui - wicket 有拖放组件吗

java - 在 Wicket 口中选择时如何更改行的颜色

java - 为什么对字节进行右移 (>>) 位运算会产生奇怪的结果?

java - 如何使用 REST JAX-RS 实现在满足特定条件时重定向用户?