この期間中、私は Sping MVC ショーケースの例のダウンロード可能なフォーム STS ダッシュボードを研究しています。
リクエスト データ セクションでは、HTTP GET リクエストのパラメータを JavaBean の同名変数にバインドする方法を示します。
実際には、次のリンクがあります。
<a id="group" class="textLink"
href="<c:url value="/data/group?param1=foo¶m2=bar¶m3=baz" />">
Group of query parameters
</a>
このリンクは、「/data/group」URL に対する GET HTTP 要求を生成します。このリクエストは、param1、param2、param3 という名前の 3 つのパラメーターを運びます。
このリクエストは、コントローラー クラスの次のメソッドによって処理されます。
@RequestMapping(value="group", method=RequestMethod.GET)
public @ResponseBody String withParamGroup(JavaBean bean) {
return "Obtained parameter group " + bean;
}
withParamGroup() メソッドは、次のような 3 つの変数とゲッター/セッター メソッドを含むオブジェクトのみである JavaBean オブジェクトを取得します。
public class JavaBean {
private String param1;
private String param2;
private String param3;
// GETTER & SETTER method
}
したがって、HTTP リクエストの param1 パラメータは JavaBean オブジェクトの param1 変数に格納され、param2 と param3 についても同じことが格納されます。
わかりました...これは私には明らかだと思います...しかし...誰がこの操作を行うのですか? Springフレームワークで自動生成されるのですか?
コントローラーメソッドで単一の HTTP リクエストパラメーターを単一の変数にバインドするときのように、@RequestParam アノテーションのようなものを使用する必要がないのはなぜですか?
もう 1 つの疑問は、HTTP パラメータ名が JavaBean 変数と同じでなければならないか、それとも単純に最初のパラメータ値が JavaBean オブジェクトの最初の変数に格納されているかということです。
ありがとう
アンドレア