Thymeleaf基础语法和使用

1.引用

修改标签

以下语法需要在th:内部使用才能正常解析,否则会原样显示

2.输出内容

th:text="" 显示文本信息,不解析


结果:qqq

th:utext="" 显示文本信息,如果有标签会解析


结果:qqq

3.基本表达式:

变量表达式   ${ }  用于获取上下文参数值,例

 @RequestMapping("/")
    public String test(Model model){
        model.addAttribute("name","123456");
        return "index";
    }



//index.html

//

选择表达式  *{ }  用于选择当前对象的一个属性值。当前对象通过   th:object="${  }"  来设置  

name:' age:

信息表达式   #{ }   用于获取全局公用的一些静态文本信息,以便维护使用,这些信息一般放在properties文件中。一般搭配th:text=" "使用

文件名称必须中messages开始,messages1也不行,messages_zh_CN可以用,小项目就直接用messages作为名称就好了。th:text="#{ key }"

4.引入URL

通过@{......}引入url

默认访问的根路径为src/main/resources/static

如访问src/main/resources/static/css/index.css文件,则

也可以访问绝对路径

如果直接使用href

则路径不会解析,导致出错,必须使用th:href=" "

5.访问WebContext对象中的属性

Thymeleaf模板适配了WebContext中的参数请求

${xxx}返回在上下文中的变量xxx或者请求request作用域中的属性xxx。例如:

   @RequestMapping("/")
    public String test(Model model,HttpServletRequest request){
        model.addAttribute("name","123456");
        request.setAttribute("requestcontext","我是request的参数");
        return "index";
    }

index.html

使用model参数的方式 

使用request参数的方式 //这个地方idea提示代码有错,但是不影响使用

${param.xxx}  获取request的请求参数

${session.xxx}  返回session作用域的一个属性xxx

${application.xxx}   返回一个全局ServletContext上下文作用中的属性xxx

6.运算符

在Thymeleaf模板中支持算数运算符和逻辑运算符。+、-、*、/、%、>=、==、!=.................

7.条件判断

(1)if unless 决定着当前标签是否显示

th:if=" "  true显示  false不显示

 th:unless=" "   true不显示  false显示

这是:if
那是:unless

结果: 这是:if 那是:unless

(2)switch语句

switch使用1

你好

我不好

switch使用2

你好

我不好

 

结果:

switch使用1

我不好

switch使用2

你好

8.循环

有两种形式:根据需要使用

th:each="迭代对象:对象集合  "

th:each="迭代对象,循环状态变量:对象集合  "

循环状态变量会有7个属性值

index:当前迭代对象的index(从0开始)

count:当前迭代对象的index(从1开始)

size:集合大小

current:当前迭代对象

even/odd:布尔值,当前循环是否是偶数/奇数(从0开始)

first:布尔值,当前是否是循环第一个

last:布尔值,当前是否是循环最后一个

这是第一个

这是最后一个

结果:

这是第一个

当前值:1当前位置:0当前计数:1总大小:5

当前值:2当前位置:1当前计数:2总大小:5

当前值:3当前位置:2当前计数:3总大小:5

当前值:4当前位置:3当前计数:4总大小:5

当前值:5当前位置:4当前计数:5总大小:5

这是最后一个

9.内置对象

#dates:日期格式化,对应Java.util.Date类

#calendars:日期格式化,对应Java.util.Calendar类

#numbers:数字格式化

#strings:字符串格式化

#objects:对应Java.lang.Object类

#bools:判断boolean类型

#arrays:数组操作

#lists:列表操作,对应Java.util.LIst类

#sets:Set操作,对应Java.util.Set类

#maps:Map操作,对应Java.util.Map类

#aggregates:创建数组或者集合

#messages:在变量表达式内部获取外部消息,类似于 #{key}

10.常用属性

th:action

th:each

th:field

th:href

th:id

th:if

th:fragment使用

page1.html




    
    Title


index.html




    
    Title


怎么了测试

th:include引用指定文件元素内部内容

th:replace引用指定文件元素全部内容替换当前元素

查看结果源码可以看出来:


Title
怎么了测试

th:object

th:src

th:text

th:value

th:style

th:onclick

11.表单提交

表单提交

商品名:
角色:

感觉虽然很整洁规范,但确实没jsp使得顺手。

你可能感兴趣的:(JavaWeb,java,html)