Wicket URLからページバージョン番号を除外する

Wicket のページは、そのまま使用するとステートフルでページセッションの番号が
ブラウザのURLに付与されてしまう。
  ?1  → 2回目の表示、 → ?2
昔からこの解決方法は以下 stackoverflow で示唆されてきているが、敢えてここに書くと。。
stackoverflow.com

↑ ↑ ↑
コンストラクタは、1つのみにすべきで

import org.apache.wicket.core.request.handler.BookmarkableListenerRequestHandler;
import org.apache.wicket.core.request.handler.ListenerRequestHandler;
import org.apache.wicket.core.request.mapper.MountedMapper;
import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.component.IRequestablePage;
import org.apache.wicket.request.mapper.info.PageComponentInfo;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;

public class NoVersionMapper extends MountedMapper{
   public NoVersionMapper(String mountPath, final Class<? extends IRequestablePage> pageClass){
      super(mountPath, pageClass, new PageParametersEncoder());
   }
   @Override
   protected void encodePageComponentInfo(Url url, PageComponentInfo info){
   }
   @Override
   public Url mapHandler(IRequestHandler requestHandler){
      if (requestHandler instanceof ListenerRequestHandler
            || requestHandler instanceof BookmarkableListenerRequestHandler){
         return null;
      }else{
         return super.mapHandler(requestHandler);
      }
   }
}

mountPath を指定しないコンストラクタを用意してそれを使ってしまうと、
全てのURLで同じ Page を指してしまい良くない。・・そういう要求ケースもあるかもしれないが考えにくい。

この NoVersionMapper を WebApplation の init() で

getRootRequestMapperAsCompound().add(new NoVersionMapper("/", HomePage.class));

のように指定していくわけだが、サイトの全ページに対処するとなると全Page クラスでこれを呼びだすのも
ちょっとたいへん。init() の書き方を各々工夫することに委ねられるだろう。
(注意)
ただし!以下が後から発覚! "/" に対しては
NoVersionMapper を書くべきでない。

oboe2uran.hatenablog.com