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の心配もなく
送られてきた場合のみの処理が書ける。