【发布时间】:2017-05-25 10:56:41
【问题描述】:
我有一个带有单选按钮形式的jsp 文件。使用POST,我在提交后阅读了此表单。
但是,在提交表单后,表单中给出的答案消失了,我想让它们显示出来。
怎么做?我一直在互联网上四处走动,但似乎找不到解决方案。
我一直在循环中尝试使用req.setAttribute("q" + i, "yes");,因为我将从此表单中获取的值保存在一个数组中。
我也想过JS,但没有经验。
没有成功。你能帮忙吗?我只是需要一个提示或一些东西来开始。
编辑:
在我的JSP(keywords.jsp)文件中,有一个搜索表单:
<form method="POST" action="keywords">
<p>
Are you looking for an urgent email?
<label><input type="radio" name="q0" value="yes" class="q0">Yes</label>
<label><input type="radio" name="q0" value="no" class="q0">No</label><br/>
</p>
<p>
Are you looking for a business email?
<label><input type="radio" name="q1" value="yes" class="q1">Yes</label>
<label><input type="radio" name="q1" value="no" class="q1">No</label><br/>
</p>
input class="btn btn-warning" type="submit" value="Search Keywords">
所以当我单击提交时 - 在doPost 中,我得到了这些单选按钮的值。 t 页面重新加载,表单与搜索结果一起再次显示。重新加载后,在表单中,没有检查任何答案。
我想要的是在重新加载表单后检查表单中的答案。重载前给出的答案,重载后应该显示的答案在ArrayList。
我有我的 Servlet:
for(int i = 0; i < keywords.getAnswersIDs().size(); i++) {
if("1".equalsIgnoreCase(keywords.getAnswersIDs().get(i))) {
req.setAttribute("q" + i, "checked");
LOGGER.info(MARKER, "For element " + i + " is yes.");
} else {
req.setAttribute("q" + i, "no");
LOGGER.info(MARKER, "For element " + i + " is no.");
}
}
最后我也有这个:
RequestDispatcher dispatcher = req.getRequestDispatcher("/keywords.jsp");
LOGGER.info(MARKER, "Dispatcher to keywords.jsp");
try {
dispatcher.forward(req, response);
} catch (ServletException e) {
LOGGER.debug(MARKER, "Caught ServletException " + e);
e.printStackTrace();
} catch (IOException e) {
LOGGER.debug(MARKER, "Caught IOException " + e);
e.printStackTrace();
}
我希望这会有所帮助。
【问题讨论】:
-
你的问题不清楚,而且没有任何代码。
-
添加 Servlet 的 doPost() 方法。
-
您好,我已经添加了我为此表单编写的部分。
-
嗨@AlanHay,你现在能帮我吗?我在我的问题中添加了更多细节。