1. 概述
本文会对thymeleaf以下功能进行举例说明:
- 调用对象的成员变量的属性
- 调用Map的对象的属性
- 调用List的对象的属性
- 调用属性的方法
- 使用ctx对象
- param:获取request的请求参数
- session:获取session的属性值
- application:获取application的属性值
2. 主代码
2.1. 公共类
本文的代码会使用到Thymeleaf系列二 Thymeleaf的标准表达式语法1“2.1 公共类” 中的User和Family
ExpressionsCtl:Control类
此类中complex方法初始化测试类,当访问此方法URL,并转到expressions/complex.html。
@Controller
@RequestMapping("/expressions")
public class ExpressionsCtl {
@RequestMapping("/complex")
public String complex(ModelMap modeMap){
// 复杂对象
Family family = new Family();
family.setFather(new User("father"));
List<User> childList = new ArrayList<User>();
childList.add(new User("son_1"));
childList.add(new User("son_2"));
family.setChildList(childList);
modeMap.put("family", family);
// map
HashMap<String, User> hashMap = new HashMap<String, User>();
hashMap.put("hashMapKey", new User("hashMap_name"));
modeMap.put("hashMap", hashMap);
return "expressions/complex";
}
...
}
complex.html 位于 templates/expressions/中,下方的代码都是在此html文件中
访问如下url地址,请注意url必须带上?id=112,否则会报错
http://localhost:8080/expressions/complex?id=112
2.2. 调用对象的成员变量的属性
演示如下功能
- 调用对象的成员变量的属性
<!-- 获取family的成员变量father的属性 -->
${family.father.name} --> <input type="text" name="userName" th:value="${family.father.name}" />
输出: “–>”的左边是语法,右边是对应的输出
=================== 调用对象的成员变量的属性 ===============================
${family.father.name} --> father
2.3. 调用Map的对象的属性
演示如下功能
- 通过map的key从hashMap获取对象的属性name值: 可以使用”.”或者使用”[]”获取对象值