我有一个表格有许多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的选定单选按钮?
答案 0 :(得分:0)
您要实现的目标是选择一个单选按钮并将其值设置为同一String selected
文件中的jsp/Servlet
。
使用request.getParameter(q.getId())
这是不可能的,因为提交表单后会创建一个HttpServletRequest。
表单提交后,请求参数将设置为请求对象,您的操作servlet / jsp CheckAnswer
可以访问它。这就是为什么你总是在当前页面中获得null
。
将单选按钮值设置为会话对象的解决方案之一可以使用javaScript完成 查看此文章Pass variables from client side to server side