有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在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类似于q1q2,等等

所有问题和所有ID都正确显示在HTML


共 (1) 个答案

  1. # 1 楼答案

    为此,您需要Javascript。也许jQuery能帮上点忙

    当您在post表单中单击submit按钮时,将复制get表单中的值,然后使用它发布,而不是默认操作