読者です 読者をやめる 読者になる 読者になる

Wicket の IRequestParameters と Java8

Wicket でプログラムを書いていて、form送信結果を取得するのに、
getRequestCycle から、org.apache.wicket.request.IRequestParameters を取得して
抽出することはあまりやらないのだけど、
 IRequestParameters#getParameterNames()
で、受け取るパラメータ名の Set<String> から名称検索して、
  IRequestParameters#getParameterValue(String)
  IRequestParameters#getParameterValues(String)

を呼んだりするのがめんどくさかった。

複数checkbox 同じ name属性で、選択による処理もこの getRequestCycle から IRequestParameters を取得して処理するのも結構コードステップがかさばっていた。

Java8 の新機能で書くと、、、

Optional.ofNullable(getRequestCycle().getRequest().getPostParameters()
.getParameterValues("ary")).ifPresent(s->{
   s.forEach(e->{
      // e は、StringValue で、e.toInt() や、e.toString() で目的の値に変換して処理する
   });
});


これなら、checkbox のようなものも NullPointerExceptionの心配もなく
送られてきた場合のみの処理が書ける。