Wicket实现闪存重定向

Wicket实现闪存重定向,wicket,wicket-6,Wicket,Wicket 6,我想执行一些类似于flash重定向的操作,但不确定它是否真的被称为flash重定向 在执行诸如删除设备之类的特定操作后,我将重定向到设备列表页面 现在,对于重定向URL。。。我添加了&sdr=true,它可以工作 问题是。。。即使在刷新页面后,参数&sdr=true也会保持不变 如果我没记错的话,当我刷新flash时。。。参数保留在那里,但在刷新时将消失。。。或者只适合一次刷新 以下是我的重定向方法: public static void redirect(String redirectUrl)

我想执行一些类似于flash重定向的操作,但不确定它是否真的被称为flash重定向

在执行诸如删除设备之类的特定操作后,我将重定向到设备列表页面

现在,对于重定向URL。。。我添加了&sdr=true,它可以工作

问题是。。。即使在刷新页面后,参数&sdr=true也会保持不变

如果我没记错的话,当我刷新flash时。。。参数保留在那里,但在刷新时将消失。。。或者只适合一次刷新

以下是我的重定向方法:

public static void redirect(String redirectUrl) {
    throw new RedirectToUrlException(redirectUrl);
}
现在,我如何在wicket中实现flash重定向?我使用的是wicket 6版本

或者。。。我希望参数&sdr=true仅适用于1个请求。刷新或重新加载页面时。。。它应该消失了

谢谢:


对不起,如果这个问题很简单,我对wicket真的很陌生,可能还有其他解决方法

Wicket可以是有状态的,即它可以在页面导航之间保持状态。因此,您可以:

setResponsePage(new SomePage(someState));
这样就不需要在url中传递任何内容,SomePage的构造函数可以决定如何处理传递的状态

如果希望在url中添加请求参数,则可以使用

PageParameters params = new PageParameters();
params.put("sdr", "true");
setResponsePage(SomePage.class, params);
在SomePage的构造函数中,您需要从传递的PageParameters中删除sdr参数,以便它不会在页面内的所有URL中呈现,例如在链接、表单操作等中。 但如果希望参数在页面刷新/重新加载时消失,则需要进行另一个重定向:

public SomePage(PageParameters params) {
   super(params);

   StringValue srdValue = params.get("srd");
   if (!srdValue.isNull()) {
      params.remove("srd");

      // do something custom

      throw new RestartResponseException(this);
      // or throw new RestartResponseException(getPageClass(), params);
   }


}