私がSpringでform:form
オブジェクトを使用している場合、Springがクラス変数の値を注入できるようにcommandNameを使用できます。Springはフォームの値をクラス変数にどのようにバインドするのですか?
しかし、コントローラーがこの値をどのようにキャッチしているのでしょうか?
@RequestMapping(method = RequestMethod.POST, value = "/form")
public String postForm(@ModelAttribute("item") Item item, ModelMap model)
{
return "result";
}
上記のコードでは、Item
が注入されています。しかし、この変数の名前を変更(またはモデル属性を削除)しても、この変数にフォーム値が挿入されることには影響しません。
春は、見つかった最初のモデルクラスの値をフォームから挿入しますか? SpringはフォームをItem item
パラメータに注入する必要があることをどのように知っていますか?
最初は、コントローラの変数(POST)にはフォームのcommandNameという名前を付けるべきだと思っていましたが、それ以外の名前でも不思議には機能しません。