Thymeleaf 语法 (持续更新)

简介

这里总结的是我自己在学习时用到的一些语法。由于是用到才会去查,因为太多我记不住。所以是记录式学习,会持续更新


标签

th:action

Form 表单
<form th:action="@{'/book/'+${book.id}}"></form> 

th:value

Input 标签
<input th:value="${book.id}"/>

th:href

a 标签
<a th:href="@{'/book/'+${book.id}}"></a>

th:each

table 表格
<tr th:each="book: ${books}"></tr>

th:text

table 表格
<td th:text="${book.id}"></td>

th:if

div 体展示
<div th:if="${books != null}"></div>

th:src

静态资源引入
<script th:src="@{/resources/js/jquery/jquery.json-2.4.min.js}"

th:object

表单数据对象的绑定

用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定。

public class LoginBean implements Serializable{...}{}
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public String login(@ModelAttribute(value = "loginBean") LoginBean loginBean,ModelMap model){
        ...
    }
}
<form id="login-form" th:action="@{/login}" th:object="${loginBean}">...</form>

th:field

表单字段绑定,属性绑定、集合绑定。

注意操作符是 *

public class LoginBean implements Serializable {

    private String username;
    private List<User> user;

...}

---
public class User implements Serializable {

    private String username;;

}
---

@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@ModelAttribute(value = "loginBean") LoginBean loginBean,ModelMap model) {
  
}
<form id="login-form" th:action="@{/login}" th:object="${loginBean}">
    <input type="text" value="" th:field="*{username}"></input>
    <input type="text" value="" th:field="*{user[0].username}"></input>
</form>

th:id

div id声明
<div class="student" th:id = "stu+(${rowStat.index}+1)"></div>

th:fragment

声明定义该属性的div为模板片段。常用与头文件,页尾文件的引入。常与th:includeth:replace一起使用

  • 声明模板片段 /WEBINF/templates/footer. html
<div th: fragment="copy" >
    © 2011 The Good Thymes Virtual Grocery
</div>
  • 引入模板片段
<div th: include=" /templates/footer : : copy" ></div>
<div th: replace=" /templates/footer : : copy" ></div>

th:inline

[[…]]之间的表达式在 Thymeleaf 被认为是内联表达式,在其中您可以使用任何类型的表达式,也会有效th:text属性。

<p>Hello, [[${session.user.name}]]!</p>

等同于:

<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>

为了让内联工作,必须激活它使用th:inline 属性,它有三个可能的值或模式(text, javascriptnone)。

<p th:inline="text">Hello, [[${session.user.name}]]!</p>

如果不使用th:inline="text",则会被当做字符串显示。th:inline="javascript"表示能在 js 中使用[ [] ]取值。

参考:[thymeleaf中的内联 [ ] ]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,209评论 1 92
  • Thymeleaf简介 前面的例子我们使用的视图技术主要是JSP。JSP的优点是它是Java EE容器的一部分,几...
    乐百川阅读 9,175评论 2 56
  • 文|妍妍爸爸 昨天晚上,闺女在房间里玩,她把彩泥的盖子全都拿下来,然后想把盖子全搭在一起,奈何闺女手小,8个盖子有...
    燕晓晓阅读 310评论 4 3
  • 今天与心月回她老家——陵川转转,心月开车。同行的还有心月的姐姐和她的外甥女,一个只有十七个月大的宝贝。 心月驾车在...
    彬彬_8b9e阅读 312评论 0 0
  • 看了一位简友翻译的2句话恐怖事件,觉得没看过瘾且有些深奥。所以,我来了…………浅显的…………且有些是真的。 01 ...
    闺中风暖阅读 632评论 24 10

友情链接更多精彩内容