2011-01-08 16 views
0

私はhtmlフォーム要素にレンダリングするカスタムQuestionオブジェクトを持っています。私は動的にこれらのオブジェクトを作成し、それらから動的なHTMLフォームを生成できるようにしたい。質問オブジェクトには、フォームから結果を保持するStringプロパティがあります。これをSpringで動作させるにはどうすればよいですか?春3の動的フォーム

私はそれが働いている(理想的ではないように)方法は、私はカスタムフォームをバックアップするためのBeanを持っています。このBeanには、表示される質問を保持するListと、結果を保持するListという2つのプロパティがあります。 JSPには、Beanをモデル属性として使用するように指示するタグがあります。次に、カスタムJSPタグを使用してListを取得し、フォーム要素にレンダリングします。要素にはanswer [n]のIDが与えられ、SpringはバッキングBeanのListプロパティにフォームの結果を格納します。

私はこれをより良くする方法を誰にも知っていますか?

+0

これは私の以前の質問に似ているようです。http://stackoverflow.com/questions/890250/better-way-for-dynamic-forms-with-spring –

+1

それはそうです。なぜ答えを選んでいないのですか? –

+0

[ここ] [1]は私が実装した解決策です。 [1]:http://stackoverflow.com/questions/9671640/spring-3-mvc-managing-a-one-to-many-relation-within-a-dynamic-form-using- a – sp00m

答えて

1

私の問題は経験不足でした。

私はこの(多くの説明のために簡略化)になってしまった:文字列questionType、文字questionText、文字列の答え:

マイBeanは、次のフィールドがあります。 私の豆のリストはリストの質問です。

豆のリストからHTMLを生成するとき、各フォーム要素のID /名前をリストの名前と一致させ、リスト内でのBeanの位置を一致させるだけです。

だから、質問の私のリストは次のように見える場合:

[0] {questionType="TEXT", questionText="What is your name?", answerText=null} 
[1] {questionType="TEXT", questionText="What is your quest?", answerText=null} 
[2] {questionType="TEXT", questionText="What is your favorite color?", answerText=null} 

は、その後、私は、次のHTMLを生成する必要がある場合にリストをIループ:

<div class="question"> 
    <p class="questionText">What is your name?</p> 
    <input type="text" id="questions[0].answerText" name="questions[0].answerText" /> 
</div> 
<div class="question"> 
    <p class="questionText">What is your quest?</p> 
    <input type="text" id="questions[1].answerText" name="questions[1].answerText" /> 
</div> 
<div class="question"> 
    <p class="questionText">What is your favorite color?</p> 
    <input type="text" id="questions[2].answerText" name="questions[2].answerText" /> 
</div> 

フォームが送信される

、 SpringはこれらのBeanを見つけ、フォームデータとともにsetAnswerText(String value)を呼び出します。

これは、他の誰かがSpring MVCの旅の始まりに遭遇するのを助けることを望みます。