PHP等の form送信では、input の name属性の書き方に を付けて配列として受け取れるようになっている
<input name="ary"
と書く方法である。
古い Wicket 1.4 ぐらいまでは、RequestCycle の PageParameters で getStringArray という便利なメソッドで
String で受け取れていた。
しかし、今の Wicket6 では既に getStringArray というメソッドではなく、以下のように取得する IRequestParameters で
getParameterValue(String param) というメソッドで List<StringValue> として受け取ることになっている。
更に、name属性に、 を付けて書いた場合、getParameterValue の引数は、昔の getStringArray のように
を省略するのではなく、HTML で書いたとおりの を付けなければならない。
<input name="ary"
と書くのは、単に後でメンテナンスする人向けに明示的な役割しか持っていない。
<input name="ary" type="text" >
を複数書いたなら、
List<StringValue> values = getRequest().getPostParameters().getParameterValues("ary");
<input name="ary" type="text" >
を複数書いたなら、
List<StringValue> values = getRequest().getPostParameters().getParameterValues("ary");
結局、1つの ary をHTMLに書いて、1つの変数として配列を渡すわけではないので、[]を付けるという書き方じたいが、無意味である。
実際、配列データを渡したければ、hidden で、JSONテキストを渡す方が汎用的に処理も書きやすいはずだ。
ステートフルが特徴の Wicket はテキストフィールドの Component を使う方法が、教科書的なので
RequestCycle の PageParameters の List<StringValue> を取得するケースは、、
jQuery などで、動的に input type="text" が追加されていくようなページ等で使う方法であろう。