隐藏的领域价值空白的Thymeleaf

Kau*_*ain 3 html java spring-mvc thymeleaf

我有一个有两个隐藏领域的百里香形式.我使用th:value指定隐藏字段的值,并将这些字段绑定到对象.

<div class="w-row">
    <div class="w-col w-col-6">
        <div class="question_text_sc">
            <p th:text="${questionVO.questionText}" />
            <p th:text="${questionVO.questionStem}" />
            <p th:text="${sequenceNo}" />
            <p th:text="${quizID}" />
        </div>
    </div>
    <div class="question_stem_sc"></div>
    <div class="w-col w-col-6">
        <div>
            <div class="w-form">
                <form class="w-clearfix" id="email-form" name="email-form" data-name="Email Form" action="#" th:action="@{/quiz/question}" th:object="${userResponseVO}" method="post">
                    <div th:each="option: ${questionVO.answerOptions}" class="w-radio radio_select" th:id="${'radio_1'}">
                        <input class="w-radio-input" id="radio" type="radio" name="answer_sc" th:field="*{answerID}" th:value="${option}"/>
                        <label class="w-form-label" id="answer_1" for="radio"><p th:text="${option}" /></label>
                    </div>
                    <input type="hidden" name="sequenceNo" th:field="*{sequenceNo}" th:value="${sequenceNo}" ></input>
                    <input type="hidden" name="quizID"  th:field="*{quizID}" th:value="${quizID}"></input>
                    <button class="button submit_answr" type="submit">Next Question</button>
                </form>
Run Code Online (Sandbox Code Playgroud)

我想将quizID和sequenceNo字段与对象中的相应字段绑定.第6行和第7行正确解析序列号/测验ID的值并显示它.但是,在表单内的th:value标记中未解析相同的值.该值为空,没有任何内容绑定到对象字段.

查看来源

在这里请求你的帮助.

编辑:

当我从隐藏元素中删除th:field属性时,代码有效.但是我想将它绑定到一个对象变量,以便服务器可以处理它.`

小智 15

我们可以通过两种方式解决您的方案

第一种方式:

<input type="hidden" th:value="${question.id}" th:attr="name='quizID'" />
Run Code Online (Sandbox Code Playgroud)

第二种方式:

<input type="hidden" th:value="${question.id}" name="quizID" />
Run Code Online (Sandbox Code Playgroud)

如果你使用thymeleaf th:field ="*{sequenceNo}",百里香的内部代码就像,

  • 它将检查特定元素是否有任何name属性,如果可用th:字段值覆盖name属性.

    NAME = "sequenceNo"

  • 它将检查是否有任何id属性到特定元素,如果它不具有th的名称:字段值新属性添加在ie)id.

    ID = "sequenceNo"


ziu*_*iuu 5

对我来说帮助设置th:field(或实际上name)使用th:attr

th:value="${question.id}"
th:attr="name='questionIds[' + ${iter.index} + ']'"
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我想从中获得价值,${question}但输入中的目标是questionIDs[i]

在像你这样的简单问题中name=answerId就足够了。