在doGet()中创建的java get value od单选按钮
我用doGet方法创建了单选按钮:
<c:forEach items="${questions}" var="question">
<li>
${question.value}
<label><input type="radio" name="${question.key}" value="yes"> Yes</label>
<label><input type="radio" name="${question.key}" value="no"> No</label> <br/>
</li>
</c:forEach>
这些都是正确的。当我试图读取单选按钮的选定值时,我得到null
我带着:
if ("yes".equalsIgnoreCase(req.getParameter(QUESTION + "" + String.valueOf(questionIndex)))) {
answer = "1";
}
当我用System.out
检查值时,也会得到nulls
System.out.println("q0: "+ req.getParameter("q0"));
System.out.println("q1: "+ req.getParameter("q1"));
System.out.println("q2: "+ req.getParameter("q2"));
System.out.println("q3: "+ req.getParameter("q3"));
你知道为什么我想读取doPost()
中的值时会得到nulls
吗
编辑: 这是我的HTML:
<div>
<form method="GET" action="keywords">
<ul>
<c:forEach items="${questions}" var="question">
<li>
${question.value}
<label><input type="radio" name="${question.key}" value="yes">Yes</label>
<label><input type="radio" name="${question.key}" value="no">No</label> <br/>
</li>
</c:forEach>
</ul>
</form>
</div>
<div>
<form method="POST" action="keywords">
<input type="submit" value="Search Keywords">
</form>
</div>
我想这里的问题是,我试图阅读的表单不在<form>
方法POST
中,对吗?
如何更改HTML代码,以便在doPost
中我能够阅读doGet
中的表单
我希望这对你有帮助
编辑:
映射来自一个json文件:
public static final String QUESTION = "q";
Map<String, String> questionsMap;
public Map<String, String> createQuestionsMap() {
questionsMap = new TreeMap<>();
JsonReader jsonReader = new JsonReader();
jsonReader.readQuestionJsonArray();
LOGGER.info(MARKER, "Invoked questions map.");
for (String question : jsonReader.readQuestionJsonArray()) {
questionsMap.put(QUESTION + "" + questionsMap.size(), question);
LOGGER.info(MARKER,
"Added question record: " + QUESTION + "" + questionsMap.size() + ", question: " + question);
}
return questionsMap;
}
id类似于q1
、q2
,等等
所有问题和所有ID都正确显示在HTML
中
# 1 楼答案
为此,您需要Javascript。也许jQuery能帮上点忙
当您在post表单中单击submit按钮时,将复制get表单中的值,然后使用它发布,而不是默认操作