Thymeleaf的学习(二)(常用标签的使用方法)

具体用法参考代码中的备注即可

常用方法

后台代码controller

@Controller
@RequestMapping("/fileoperate")
public class fileOperateController {

    /**
     * 功能:跳转thymeleaf测试页面
     * 创建人:by tm
     * 时间:2020-3-13
     */
    @RequestMapping("/thymeleaftest")
    public String thymeleaftest(Model model){
        model.addAttribute("name","张三");
        model.addAttribute("time",new Date());
        model.addAttribute("richtext","<font color=‘red‘>富文本</font>");
        model.addAttribute("urltest","http://www.baidu.com");
        t_user user = new t_user();
        user.setName("李四");
        user.setTel("11111111");
        user.setAge("30");
        user.setSex("中");
        user.setTesttime(new Date());
        user.setTestage(30);
        model.addAttribute("userObj",user);

        t_user u1 = new t_user();
        u1.setName("姓名1");
        u1.setAge("20");
        u1.setSex("男");
        u1.setTesttime(new Date());
        u1.setTestage(20);

        t_user u2 = new t_user();
        u2.setName("姓名2");
        u2.setAge("10");
        u2.setSex("女");
        u2.setTesttime(new Date());
        u2.setTestage(10);

        List<t_user> userList = new ArrayList<>();
        userList.add(u1);
        userList.add(u2);
        userList.add(user);
        model.addAttribute("userList",userList);

        return "thymeleaftest";
    }

    /**
     * 功能:thymeleaf测试页面表单提交
     * 创建人:by tm
     * 时间:2020-3-13
     */
    @PostMapping("postform")
    public String postform(t_user u){
        System.out.println(u.getName());
        System.out.println(u.getAge());
        return "redirect:/fileoperate/thymeleaftest";
    }

}

前台代码html和一个引入的js(test.js)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
    <!--加载文件  需要1. th:src  2.application.properties文件中写上  spring.mvc.static-path-pattern=/static/**  配置 3.在statci路径下创建test.js文件-->
    <script th:src="@{/static/test.js}"></script>

</head>
<body>
<!--th:text  文本替换-->
<h3>th:text  文本替换</h3>
<h3 th:text="${name}">11</h3><!--这里就算写了11也不会显示,仍会以里面的name值为主-->

<!--th:utext  文本替换-->
<h3>th:utext  文本替换</h3>
<h3 th:text="${richtext}"></h3>
<h3 th:utext="${richtext}"></h3><!--utext会自动将html代码转化成css-->

<!--#dates.format(变量名,‘格式‘)  时间类型转换 -->
<h3>#dates.format(变量名,‘格式‘)  时间类型转换</h3>
<input th:value="${#dates.format(time,‘yyyy-MM-dd HH:mm:ss‘)}"/>

<!--URL方式  th:href @{ }-->
<a href="http://www.baidu.com">百度</a>
<br/>
<a th:href="@{http://www.baidu.com}">百度thymeleaf用法1</a><!--要使用@标识符和th:href的方式-->
<br/>
<a th:href="${urltest}">百度thymeleaf用法2</a><!--将地址填入后台也可以实现-->
<br/>

<!--对象类型用法-->
<h3>对象类型用法</h3>
<div>
    <!--使用th:id来替换id  th:name来替换name  th:value来替换value-->
    用户姓名:<input th:id="${userObj.name}" th:name="${userObj.name}" th:value="${userObj.name}"/>
    <br/>
    用户年龄:<input th:value="${userObj.age}"/>
    <br/>
    用户电话:<input th:value="${userObj.tel}"/>
</div>
<br/>
<!--对象类型用法优化-->
<h3>对象类型用法优化</h3>
<div th:object="${userObj}">
    <!--跟上面的区别为使用*来替代$   前提是最外层的div要用th:object标签来声明一下userObj对象-->
    用户姓名:<input th:id="*{name}" th:name="*{name}" th:value="*{name}"/>
    <br/>
    用户年龄:<input th:value="*{age}"/>
    <br/>
    用户电话:<input th:value="*{tel}"/>
</div>

<!--form表单提交-->
<h3>form表单提交</h3>
<!--表单提交 通常用th:action里面填上地址 fileoperate是controller类上注释 postform是表单提交的方法上面注释值 th:object中是返回对象类型-->
<form th:action="@{/fileoperate/postform}" th:object="${userObj}" th:method="post">
    <input type="text" th:field="*{name}"/><!--th:field为推荐用法 常和上面的th:object一起用 生成的效果= <input type="text" id="name" name="name" value="李四" />-->
    <input type="text" th:field="*{age}"/><!--效果等同于 <input type="text" id="age" name="age" value="20" /> -->
    <input type="submit"/>
</form>
<br/>

<!--th:if用于判断 常和 eq或者==(等于) gt(>),lt(<),ge(>=),le(<=) ne(!=)一起用-->
<h3>th:if判断</h3>
<div th:if="${userObj.age} == 18">值1</div><!--等于-->
<div th:if="${userObj.age} eq 18">值2</div><!--等于-->
<div th:if="${userObj.age} gt 18">值3</div><!--大于-->
<div th:if="${userObj.age} lt 18">值4</div><!--小于-->
<div th:if="${userObj.age} ge 18">值5</div><!--大于等于-->
<div th:if="${userObj.age} le 18">值6</div><!--小于等于-->
<div th:if="${userObj.age} ne 18">值7</div><!--不等于-->
<br/>

<!--th:unless  效果与th:if相反 -->
<h3>th:unless判断</h3>
<div th:unless="${userObj.age} == 18">值1</div><!--等于-->
<br/>

<!--th:selected的用法-->
<h3>th:selected的用法</h3>
<select>
    <option>选择框</option>
    <option th:selected="${userObj.name eq ‘张三‘}">张三1</option>
    <option th:selected="${userObj.name eq ‘李四‘}">李四1</option>
    <option th:selected="${userObj.name eq ‘王五‘}">王五1</option>
</select>
<br/>

<!--th:each用法-->
<h3>th:each用法</h3>
<table>
    <tr>
        <th>姓名</th>
        <th>年龄</th>
        <th>年龄备注</th>
        <th>性别</th>
        <th>时间</th>
    </tr>
    <tr th:each="person:${userList}">
        <td th:text="${person.name}"></td>
        <td th:text="${person.age}"></td>
        <td th:text="${person.testage gt 15} ? 你老了:你很年轻">15岁</td>
        <td th:text="${person.sex}"></td>
        <td th:text="${#dates.format(userObj.testtime,‘yyyy-MM-dd hh:mm:ss‘)}"></td>
    </tr>
</table>

<!--th:switch用法-->
<h3>th:switch用法</h3>
<div th:switch="${userObj.name}">
    <!--<p th:case="‘李四‘">李四1</p>  李四两边的单引号可以省略-->
    <p th:case="张三">张三</p>
    <p th:case="#{lisi}">李四2</p><!--使用#其实是引入messages.properties的配置 还需要加上在application.properties文件中加上spring.messages.basename=i18n/messages 但是我这里一直获取不到 原因未知-->
<!--    <p th:case="*">张四</p>&lt;!&ndash;如果上面的条件都不满足 最后就取这里的&ndash;&gt;-->
</div>

</body>
</html>

test.js

/*这里在html文件中用<script th:src="@{/static/test.js}"></script>引入*/
alert("Thymeleaf测试弹窗");

messages.properties和application.properties

#messages.properties
lisi=李四

#application.properties
#定义i18n的文件路径 resources文件夹下i18n里的messages.properties文件
spring.messages.basename=i18n/messages
spring.messages.cache-seconds=3600
spring.messages.encoding=UTF-8

效果

参考:

1. https://www.jianshu.com/p/5dea7d70b42f

2. https://www.cnblogs.com/beyrl-blog/p/6633182.html

3. 博客园视频

持续更新!!!

原文地址:https://www.cnblogs.com/flyinghome/p/12488668.html

时间: 2024-11-01 19:45:03

Thymeleaf的学习(二)(常用标签的使用方法)的相关文章

html基础--常用标签的使用方法

1  html标题 <h1> to <h6> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>h1</h1> <h2>h2</h2> <h

JavaScript笔记(二)——常用数组、字符串方法的应用

1.将字符串中的字符翻转,比如'hello',翻转成'olleh'. var arr=[]; function reverseString(str) { arr=str.split(""); arr=arr.reverse(); str=arr.join(""); return str;} reverseString("hello"); 2.计算一个整数的阶乘 function factorialize(num) { if(num<=1){

html常用标签学习

1.html常用标签学习:1.1.<em>和<strong>标签主要是用来做强调用的,其中<em>是让文字变成斜体,而<strong>把文字进行加粗显示.1.2.<span>标签是没有语义的,它的作用就是为了设置单独的样式用的.1.3.<q>标签是做文本引用时候用的,需要引用的文本不需要加双引号,浏览器会自动为<q>标签加上引号.<blockquote>标签是对长文本进行引用,引用短文本比如一句话就用<q

HTML超文本标记语言(二)-HTML中几个常用标签及属性

HTML中几个常用标签及其属性 一.HTML链接标签:<a></a> 1.herf属性:创建指向另一个文档的标签(超链接) 语法结构:<a href=url">Link Text</a> 注意: "链接文本"不必一定是文字,图片或其他HTM元素也可以成为链接. 2.name属性:规定锚的名称,用于创建文档内的书签(锚) 语法结构如下. 命名锚:<a name="tip">基本的注意事项-有用的提示

Web前端入门学习(2)——HTML常用标签

HTML标签 a标签 a标签是一个超链接标签,用于从一个页面链接到另一个页面.在<Web前端入门学习(1)>有提到过4个伪类,分别是a:link.a:visited.a:hover.a:active. a:link代表的是未访问过的链接,当访问者首次打开网页未点击链接时,所表现的形式: a:visited代表的是访问过的链接,相对于link,是访问者点击了连接后,所表现的形式: a:hover代表的是当鼠标经过链接上面时所表现的形式,鼠标经过后,链接会有所变化: a:active代表的是当用户

spring 自定义标签 学习二

在上篇中写的只支持写属性,不支持标签property的写法,但是如果有时候我们还想做成支持 property的用法,则可以在xsd中增加spring 自带的xsd引用 修改xsd文件如下: <?xml version="1.0"encoding="UTF-8"?> <xsd:schema xmlns="http://www.ruishenh.com/custom/myTest" xmlns:xsd="http://ww

HTML5 的知识分享(二):HTML5 的常用标签

经过我的上一篇博客可以让大家简单地了解了一下 HTML5 的基础标签,现在再和大家分享一下 HTML5 的常用标签吧 基础标签与常用标签的主要区别在于:要先有基础标签的基础才可以灵活的使用常用标签. 常用标签主要分为六种: 列表标签 链接标签 表格标签 图像标签 音频标签 视频标签 一.列表标签 (1) <ul> 标签:定义无序列表:要使用样式来定义列表类型. (2) <ol> 标签:定义有序列表:要使用 CSS 来定义列表的类型. (3) <li> 标签:定义列表项目

关于Thymeleaf的常用标签以及ideaTools下找不到Test RESTful web service的解决办法

首先需要在html里加上如下代码开启thymeleaf标签库 <html lang="en" xmlns:th="http://www.thymeleaf.org"> lang="en"是html5需要的 常用表达式: ${...} 变量表达式 *{...} 选择表达式 #{...} 消息文字表达式 @{...} 链接url表达式 #maps 工具对象表达式 常用标签: th:action 定义后台控制器路径 th:each 循环语句

JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% request.setCharacterEncoding("UTF-8"); %> <jsp:forward page="/index.jsp"> <jsp:param value="张三" name="userName&q