コントローラー アクションへのポスト リクエストは、次のような ajax から来ています。
$.post("myurl.htm", { view: $("#selView").val(),
val1: "value1", val2: "value2"
});
私には2つのモデルがFoo
あり、Bar
public class Foo {
public String val1;
//getter/setters
}
public class Bar {
public String val2;
//getters/setters
}
今、私のコントローラーのアクションは次のようになります。
@RequestMapping(value="/myurl.htm", method=RequestMethod.POST)
public ModelAndView doSomething (
@RequestParam(value="view", required=true) String view,
@RequestParam(value="val1", required=false) String val1,
@RequestParam(value="val2", required=false) String val2) {
Foo foo = new Foo();
Bar bar = new Bar();
if (view.equalsIgnoreCase("something"))
foo.setVal1(val1);
else if (view.equalsIgnoreCase("somethingelse"))
foo.setVal2(val2);
fooService.doSomeStuffWithDb(foo);
barService.doSomeStuffWithDb(bar);
}
質問
それでも、上記のすべてが機能しますが、これを行うためのより良い方法があるはずだと思います...? 投稿リクエストで 10 個のパラメーターを投稿した場合、コントローラー アクションで 10 個のパラメーターを使用できますか?? これではうまくスケーリングできません。
では、春がパラメータをモデル上の関連するゲッター/セッターに自動的にバインドできる方法はありますか?