带有参数化输入的 Thymeleaf 片段不起作用

Thymeleaf fragments with parameterized input not working

片段

    <div th:fragment="sort (label,field)">
        <label th:text="${label}"> Label
            <input th:name="'sort-' + ${field}" type="radio" value="asc"/>
            <input th:name="'sort-' + ${field}" type="radio" value="dsc"/>
        </label>
    </div>

用法

    <div th:replace="fragments/form.html :: sort(label = 'Name', field = 'name')"></div>

页面上显示的内容

    <label>Name</label>

不要将 <input> 元素放在 <label> 元素内。

当您在 <label> 元素中使用 th:text="${label}" 时,Thymeleaf 表达式的结果将替换 <label>...</label> 标签内的 一切 - 包括嵌套的 <input> 元素。这就是为什么你只看到 <label>Name</label>.

标签通常使用 for 属性与输入元素(或元素组)相关联。您可以在这个问题中阅读更多相关信息:

Using the HTML 'label' tag with radio buttons