隐藏字段值空白Thymeleaf

问题描述 投票:0回答:5
java html spring-mvc thymeleaf
5个回答
21
投票

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

第一种方法:

<input type="hidden" th:value="${question.id}" th:attr="name='quizID'" />

第二种方式:

<input type="hidden" th:value="${question.id}" name="quizID" />

如果您使用 thymeleaf th:field="*{sequenceNo}",thymeleaf 的内部代码的工作方式如下,

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

    名称=“序列号”

  • 它将检查特定元素是否有任何 id 属性,如果它不可用 th:field value 添加的新属性,即)id

    id=“序列号”


6
投票

对我来说帮助设置

th:field
(或者实际上是
name
)使用
th:attr

th:value="${question.id}"
th:attr="name='questionIds[' + ${iter.index} + ']'"

在我的示例中,我想从

${question}
获取值,但输入中的目标是
questionIDs[i]

在像你这样的简单问题中

name=answerId
应该足够了。


0
投票

Thymeleaf 似乎无法识别

hidden
字段。要修复它,请尝试以下操作:

  1. 将输入定义为文本(而不是隐藏)。
  2. 定义类似
    "display:none"
    的样式标签,以便在屏幕上隐藏元素。

结果应该是这样的:

<input type="text" th:field="*{parameters[${stat.index}].field}" style="display:none;">

希望有帮助。


0
投票

假设您要收集对某个页面的评论。然后,除了注释之外,您还必须向控制器传输页面名称。当然,用户不必重新输入该页面的名称。该信息必须传递给控制器,但 th:field 仅映射用户输入的值,而不映射默认生成的值。 但您可以将此页面的名称作为 URL 中的参数传递给控制器。 在 html 中,你有类似的东西:

<form  th:action="@{/saveComment(lastPage=${lastPage})}" th:object="${comments}" method="post" enctype="multipart/form-data">
        <div class="row">
 .................................................................................
            <h2>Enter your comment</h2>
            <textarea  th:field="${comments.comment}" rows="10" cols="100" name="comment" id="comment"></textarea>
            <label for="comment">Your comment here</label><br />
            <input type="submit" name ="submit" value="Submit" />
        </div>
    </form> 

In controller, you put stuff like this:

   @PostMapping("/saveComment")
    public String saveComment(Comments comments, String lastPage) {
        comments.setPage_commented(lastPage);
        commentsRepository.save(comments);
        return "redirect:/";
    }

0
投票

我遇到过这样的情况

<input type="hidden"
       th:field="*{releaseArtifactDtos[__${itemStat.index}__].fileName}"
       th:value="${releaseArtifactDto.fileName}" />

但这并没有

<input type="hidden"
       th:field="*{releaseArtifactDtos[__${itemStat.index}__].versionName}"
       th:value="${versionProperty.version.versionName}"

输入值将仅显示为“值”,而不进行赋值。 我可以通过在此之后立即转储该值来证明该值的存在。

<span th:text="${versionProperty.version.versionName}" />

隐藏输入类型中字段和值的组合似乎有点错误。 最终对我有用的是

<input type="hidden"
       th:attr="name='releaseArtifactDtos[' + ${itemStat.index} + '].versionName'"
       th:value="${versionProperty.version.versionName}"
© www.soinside.com 2019 - 2024. All rights reserved.