如何将视图中的表单中的对象列表绑定到Spring 3中的Controller

时间:2012-04-16 20:29:19

标签: java spring jsp spring-3

我希望我能清楚地解释自己,因为我刚刚开始使用Spring。

说我有以下bean:

public class UserAnswer {
    private String answer;

    public UserAnswer() {
    }
    public String getAnswer() {
        return answer;
    }
    public void setAnswer(String answer) {
        this.answer = answer;
    }

这是一种重定向到我的视图的控制器方法。请注意传递给模型的参数

@RequestMapping(value="/usuarios/cambiar_estado", method=RequestMethod.POST)
    public String bloquearDesbloquearUsuario(@RequestParam (value="usuarioPinIdHidden", required=false) String pinId, Model model){
        try{
            List<Question> questionList = servicioAcceso.getSecurityQuestionsByUser(Long.parseLong(pinId));
            model.addAttribute("userAnswer", new UserAnswer());
            model.addAttribute("questionList", questionList);           
        }catch(Exception e){
            e.printStackTrace();
        }
            return "login/pregunta_seguridad";              
    }

这是用于呈现问题列表的视图login / pregunta_seguridad.jsp。我需要列表中的每个元素 要绑定到UserAnswer类型的项目列表:

<c:url var="url" value="/usuarios/compare_answers"/>
<form:form modelAttribute="userAnswer" action="${url}" method="POST">
    <c:if test="${not empty answerList}">
        <table class="summary" style="border: none;">
            <c:forEach var="question" items="${questionList}">
                <tr>
                    <td colspan="2">${question.description}</td>
                </tr>
                <tr>
                    <form:input path="answer" id="answer"/> 
                </tr>       
            </c:forEach>
        </table>
    </c:if>
    <div class="span-3 last">
            <button type="submit">Confirm</button>
    </div>
</form:form>

我需要一种方法来获取UserAnswer列表

@RequestMapping(value="/usuarios/compare_answers", method=RequestMethod.POST)
    public String compareAnswer(Model model, UserAnswer userAnswer){
        try{
            //this is where I should receive a list of UserAnswer
        }catch(Exception e){
            e.printStackTrace();
        }
        return null;
    }

我怎么能在春天这样做? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

我认为直接你不能将对象列表绑定到表单支持bean,而是可以绑定包含此列表的父类,例如UserForm类包含UserAnswer列表并将UserForm绑定为表单支持bean。 / p>