HTML の複数選択オプション ボックスから複数の値を取得しようとしています。
コントローラーに入ります:
/test?t=1&t=2&t=3
コントローラーで、int 配列を取得しようとします。
@RequestParam(value = "t", required = true) int[] t
しかし、次を使用して確認すると:
t.length
1 つしか表示されません。つまり、Spring は 1 つのパラメーターのみを取得しますが、3 を期待していました。
HTML の複数選択オプション ボックスから複数の値を取得しようとしています。
コントローラーに入ります:
/test?t=1&t=2&t=3
コントローラーで、int 配列を取得しようとします。
@RequestParam(value = "t", required = true) int[] t
しかし、次を使用して確認すると:
t.length
1 つしか表示されません。つまり、Spring は 1 つのパラメーターのみを取得しますが、3 を期待していました。
spring がパラメーター配列を String 以外の特定の型に変換するとは思わないので、次のことを試してください。
@RequestParam(value = "t", required = true) String[] t
次にInteger.parseInt()、文字列を int に変換するために使用します。
これは、Spring 3.2 バージョンで期待どおりに機能しています。私は方法を持っています:
@RequestMapping(value = "/blueprint", method = RequestMethod.GET)
public ModelAndView blueprint(@RequestParam(value = "blueprints", required = false) int[] blueprints)
そして使用時
http://localhost:9000/blueprint?blueprints=2&blueprints=1
また
http://localhost:9000/nbu-portal-webapp/blueprint?blueprints=1,2
値は正しい int 配列に変換されています。