Wicket setResponsePage PageParameters URLにパラメータを載せない

Wicket 画面遷移を setResponsePage(Class , PageParameters) で行うとURLにパラメータがついてしまうのを避けるには、
・遷移先の WebPage は、IRequestablePage を implement する。
・遷移先の WebPageコンストラクタでPageParametersを受け取るようにして、
 setResponsePageでインスタンス作成する。
・PageParametersEncoderでURLをそのまま返すものを用意して WebApplication で mount指定する

import org.apache.wicket.request.Url;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
/**
 * NoParamsPageParametersEncoder.
 */
public class NoParamsPageParametersEncoder extends PageParametersEncoder{
   public NoParamsPageParametersEncoder(){
      super();
   }
   @Override
   public Url encodePageParameters(PageParameters pageParameters) {
      return new Url();
   }
}

遷移先WebPage

public class TestPage extends WebPage implements IRequestablePage{
     public TestPage(PageParameters parameters){
           int a = Optional.ofNullable(parameters.get("a").toOptionalInteger()).map(e->e.intValue()).orElse(0);
           String b = parameters.get("b").toOptionalString();

WebApplication で、

mount(new MountedMapper("/testpage", TestPage.class, new NoParamsPageParametersEncoder()));

呼出し側

queue(new Button("test").add(AjaxEventBehavior.onEvent("click", t->{
    PageParameters parameters = new PageParameters();
    parameters.add("a", 10);
    parameters.add("b", "Hello");
    setResponsePage(new TestPage(parameters));
})));