2012-03-12 124 views
0

私はjavaとspring mvcを使用しています。
入力テキストを含むカスタムタグを作成しました。今、このカスタムタグをフォーム内で使用したいと思います。このフォームは、ModelAttributeパラメーターとしてコントローラーに渡す必要があります。カスタムタグには入力テキストに "form:"という接頭辞がありません。カスタムタグのコードにはパスがありません。私はフォームの中でのみパスの値を供給することができます。
これを行う最善の方法は何ですか?java spring mvcカスタムタグは、フォームのModelAttributeパラメータとしてテキスト値を入力します。

答えて

0

コントローラメソッドで@RequestParamアノテーションを使用して取得できます。限り、あなたはあなたのカスタムタグによって作成されたHTML要素の名前を知っているように、あなたは@RequestParamパラメータのためにそれを使用することができます。

public String myControllerMethod(@RequestParam String myElement) { 
    ... 
} 

EDIT:

それとも@ModelAttributeが動作するはずですが。 @ModelAttributeクラスに、HTML要素の名前と一致するフィールド(ゲッター/セッター)があることを確認してください。

public class MyBackingBean { 
    private String myElementName; 
    public String getMyElementName() {return myElementName;} 
    public void setMyElementName(String myElementName) {this.myElementName = myElementName; } 
... 
} 

public String myControllerMethod(@ModelAttribute MyBackingBean myBean) { 
    System.out.println(myBean.getMyElementName()); 
    ... 
} 
+0

「@RequestParam」と「@ModelAttribute」の違いは何ですか? – Naor

+0

RequestParamは、1つのリクエストパラメータをメソッドパラメータに正確にマッピングします。 ModelAttributeは、Bean内のgetters/setterに着信要求パラメータをマッピングし、名前で照合してBeanオブジェクト全体を埋め込むことができます。私の編集を参照してください。 – GriffeyDog

+0

答えをありがとう。私は 'form:'プレフィックスが必要ないのですか? – Naor

関連する問題