Thymeleaf输入表单绑定

时间:2019-06-06 12:06:08

标签: java html thymeleaf

我有一个绑定到我班级的表格,并且一切正常。

<form th:action="@{/createPost}" th:object="${newPost}" method="post" class="form-signin">

        <input type="text" th:field="*{topic}" class="new-post-topic-input" placeholder="post topic"
               autofocus="true"/>
</form>

我想将输入CSS更改为其他样式,但是type ='text'覆盖了所有内容。但是,如果我将输入类型更改为其他任何类型,它都不会绑定值。 我可以让百里香叶看到其他输入类型来绑定它们吗?

更新

我有一个引导css文件,其中包含

的css样式

但是我希望对此输入有自己的样式,而不必从页面中删除bootstrap css。但是,如果我在此输入中添加class ='anyClass',则来自type ='text'的bootstrap中的css会覆盖所有内容。而且,如果我将文字类型从文本更改为其他内容,则百里香不再映射值。

upd2 我的问题与CSS覆盖无关。

我的问题是关于百里香叶数据对象的绑定。我有th:object =“ $ {newPost}” 在表单标签中。 Thymeleaf看到了它,当我提交表单时,它将每个对象绑定到该对象的字段。

但是,如果我从type ='text'更改为type ='ANYTHING ELSE',则thymeleaf不会映射任何内容。我如何使百里香叶将其他标签(如etc)绑定到我的对象上?

1 个答案:

答案 0 :(得分:0)

The documentation明确指出可以绑定到其他类型:

  

请注意,th:field还了解HTML5引入的<input><input type="datetime" ... />等新类型的<input type="color" ... />元素,从而有效地为Spring MVC添加了完整的HTML5支持。

该文档还提供了一个示例:

<div>
  <label th:for="${#ids.next('covered')}" th:text="#{seedstarter.covered}">Covered</label>
  <input type="checkbox" th:field="*{covered}" />
</div>

当然,字段covered必须是boolean类型。请确保您的input元素的类型与您的字段的类型相匹配。