2011-01-08 46 views
0

我有我自定義的問題對象,我將其呈現爲html表單元素。我希望能夠動態地創建這些對象並從它們中生成一個動態的HTML表單。問題對象有一個String屬性來保存表單的結果。我怎樣才能在春季工作?Spring 3中的動態表單

我有它的工作方式(這似乎並不理想),我有一個bean來支持自定義窗體。這個bean有兩個屬性:一個List來保存要顯示的問題,一個List來保存結果。 JSP有一個標籤,告訴它使用該bean作爲模型屬性。然後我有一個自定義JSP標記,它接受列表並將它們呈現爲表單元素。這些元素被賦予了answer [n]的ID,Spring將把這個表單的結果放到backing 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-一個 – sp00m

回答

1

我的問題是缺乏經驗。

我結束了這一點(很多簡化的解釋):

我的豆具有以下字段:字符串questionType,字符串questionText,字符串的答案。 我的豆類列表是列表問題。

當我從bean列表中生成HTML時,我只需要使每個表單元素的id/name與列表名稱以及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,當我遍歷列表:

<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旅程的開始時陷入困境。