我创建了测验项目。我想在单击选项单选按钮时保存show user answerlist。在最后的考试中我想用ajax插入mysql所有的答案列表。
在解析答案列表中我写了这样的代码。但是在每个新页面中,单击选项previos answer表显示为null。
请告诉我如何临时保存jsp中的所有答案然后插入mysql:
<html>
<head>
<% Logger log = Logger.getLogger("Test");%>
<% Long qnum = (Long) session.getAttribute("qnumer"); %>
<% String answer = (String) session.getAttribute("answer");%>
<%log.info(qnum + answer);%>
<% String [] answerqlist = new String[6] ; %>
<%switch (Integer.parseInt(String.valueOf(qnum))){
case 1:
String a1 = answer;
answerqlist[0]=a1;
break;
case 2:
String a2 = answer;
answerqlist[1]=a2;
break;
case 3:
String a3 = answer;
answerqlist[2]=a3;
break;
case 4:
String a4 = answer;
answerqlist[3]=a4;
break;
case 5:
String a5 = answer;
answerqlist[4]=a5;
break;
case 6:
String a6 = answer;
answerqlist[5]=a6;
break;
}%>
</head>
<body>
<table cellspacing="0" width="100%" style="border: solid 1px;" >
<thead>
<tr>
<th>1</th>
<th>2</th>
<th>3</th>
<th>4</th>
<th>5</th>
<th>6</th>
</tr>
</thead>
<tbody>
<tr align="center">
<td><%=answerqlist[0]%></td>
<td><%=answerqlist[1]%></td>
<td><%=answerqlist[2]%></td>
<td><%=answerqlist[3]%></td>
<td><%=answerqlist[4]%></td>
<td><%=answerqlist[5]%></td>
</tr>
</tbody>
</table>
</body>
</html>
答案 0 :(得分:1)
您将从会议中获得:
<% Long qnum = (Long) session.getAttribute("qnumer"); %>
<% String answer = (String) session.getAttribute("answer");%>
但我没有看到你在会话中设置这些值的地方。
对于数组answerqlist
也一样,你每个页面都在构建一个新的,你应该将它保存到会话中(并加载它)。
PS:你真的要看看How to avoid Java code in JSP files?
PS 2:开关不是必需的,因为这可以减少为:
int index = Integer.parseInt(String.valueOf(qnum));
answerqlist[index - 1] = answer;
你一遍又一遍地做同样的事情,但索引取决于qnum。当然,您可以添加一个检查来防止异常。