如何在jsp中获取表单div中的选中单选按钮?

时间:2017-01-19 18:55:48

标签: java jsp servlets radio-button

我有一个表格有许多div和动作servlet来检查用户是否对每个问题做出正确或错误。每个div都是由java代码创建的多项选择题。

jsp档案

<form id="doExam" name="doExam" action="CheckAnswer" method="POST">
     <% for (int i = 0; i < NumofQuestions; i++) {
        Question q = (Question) exam.get(i); %>

        <div id="question">
           <p> <b>Question <%=i+1%>:</b> <%=q.getContent()%></p>
           <p> <b>A.</b> <input type="radio" name="<%=q.getId()%>" value="A"> <%=q.getAnswerA()%> </p>
           <p> <b>B.</b> <input type="radio" name="<%=q.getId()%>" value="B"> <%=q.getAnswerB()%> </p>
           <p> <b>C.</b> <input type="radio" name="<%=q.getId()%>" value="C"> <%=q.getAnswerC()%> </p>
           <p> <b>D.</b> <input type="radio" name="<%=q.getId()%>" value="D"> <%=q.getAnswerD()%> </p>
        </div>

        <%
           String selected = request.getParameter(q.getId()); // ****** //
           list_answer.add(selected);
         }

         session.setAttribute("user_answer", list_answer); %>

     <input type="submit" value="Finish Exam">
</form>

变量selected(在该行中有注释)总是得到null。因此,所有list_answer项都是null。有没有办法获得question div的选定单选按钮?

1 个答案:

答案 0 :(得分:0)

您要实现的目标是选择一个单选按钮并将其值设置为同一String selected文件中的jsp/Servlet

使用request.getParameter(q.getId())这是不可能的,因为提交表单后会创建一个HttpServletRequest。
表单提交后,请求参数将设置为请求对象,您的操作servlet / jsp CheckAnswer可以访问它。这就是为什么你总是在当前页面中获得null

将单选按钮值设置为会话对象的解决方案之一可以使用javaScript完成 查看此文章Pass variables from client side to server side