Установить путь радиокнопки в форме JSP - PullRequest
3 голосов
/ 22 сентября 2011

Я использую весеннее приложение 2.5. У меня есть список переключателей, отображаемых с использованием списка объектов на 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;
        .
        .

    }

Как мне установить переменную пути переключателей для переменной 'choosenAnswers' в классе QuestionGroupDetails. Потому что, когда я использую этот код, он на самом деле ожидает переменную 'choosenAnswers' в Артефакте. Пожалуйста, помогите.

1 Ответ

2 голосов
/ 23 сентября 2011

Вы можете использовать свойство varStatus тега <for:each ... /> для получения индекса текущего цикла.

<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()).

...