2011-09-22 50 views
3

我正在使用spring應用程序2.5。我有一個使用jsp上的對象列表顯示的單選按鈕列表。我想了單選按鈕的路徑設置到其各自的以jsp形式設置單選按鈕的路徑

objects in the list. 
<form:form commandName = "artifact" name="formradioquest"> 
    <c:forEach var="questionArtifact" items="${artifact.questionGroupDetails}"> 
     <c:forEach var="answerOption" items="${questionArtifact.question.answerOptions}"> 
      <form:radiobutton path="choosenAnswers" value="${answerOption}" label="${answerOption.answerText}" cssClass="styled"/> 
     </c:forEach> 
    </c:forEach> 
    . 
. 
</form:form> 
    public class Artifact{ 
     List<questionGroupDetails> questionGroupDetails; 
     . 
     . 
    } 
    public class questionGroupDetails{ 
     Question question; 
     AnswerOption choosenAnswers; 
     . 
     . 

    } 
    public class Question{ 
     List<AnswerOption> answerOptions; 
     . 
     . 

    } 

我怎樣才能單選按鈕的路徑變量設置爲QuestionGroupDetails類「choosenAnswers」變量。因爲當我使用這段代碼時,它實際上期待着Artifact中的'choosenAnswers'變量。請幫忙。

回答

2

您可以使用<for:each ... />標記的varStatus屬性來獲取當前循環索引。

<c:forEach var="questionArtifact" items="${artifact.questionGroupDetails}" varStatus="row"> 
    <c:forEach var="answerOption" items="${questionArtifact.question.answerOptions}"> 
    <form:radiobutton path="choosenAnswers[${row.index}]" value="${answerOption}" label="${answerOption.answerText}" cssClass="styled"/> 
    </c:forEach> 
</c:forEach> 

path屬性將其解析爲choosenAnswers.get(row.getIndex())

+0

但是,這將再次假設choosenAnswers是在我的命令對象的工件對象中。我想選擇各自的'questionArtifact'對象的'chossenAnswers',這樣當表單被提交時,我將訪問控制器中的artifact.questionArtifact [0] .getChoosenAnswers() –

+0

要測試上述答案,我在Artifact類中添加了choosenAnswers列表,但我不想要。上面的答案給出異常,說bean類[Artifact]的'Invalid property'choosenAnswers [0]':不能訪問索引屬性路徑'choosenAnswers [0]'中引用的屬性中的索引值:返回null' –

+0

Hi o-richie-nal ,我解決了這個問題。其實你給了我最初的解決這個謝謝。 –