th:each
该属性较为常用,比如从后台传来一个对象集合那么就可以使用此属性遍历输出,它与JSTL中的<c: forEach>类似,此属性既可以循环遍历集合,也可以循环遍历数组及Map。
循环list
controller构建list数据
@RequestMapping(value="/users")
public String selectAllUser (Model model) {
ArrayList<User> userList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setName("jack" + i);
user.setPhone("13"+i+"11111111");
userList.add(user);
}
model.addAttribute("userList", userList);
return "user";
}
html,这里的interStat类似于jstl里面foreach的varStatus,可以获取到当前的迭代信息。
index: 当前迭代对象的index(从0开始计算)
count: 当前迭代对象的个数(从1开始计算)
size: 被迭代对象的大小
current: 当前迭代变量
even/odd: 布尔值,当前循环是否是偶数/奇数(从0开始计算)
first: 布尔值,当前循环是否是第一个
last: 布尔值,当前循环是否是最后一个
循环map
controller构建map数据
@RequestMapping(value="/usersMap")
public String selectAllUserMap (Model model) {
HashMap<String, User> userMap = new HashMap<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setName("jack" + i);
user.setPhone("13"+i+"11111111");
userMap.put(String.valueOf(i), user);
}
model.addAttribute("userMap", userMap);
return "user";
}
html,myMapVal.key相当于map的键,myMapVal.value相当于map中的值。
controller构建数组数据
@RequestMapping(value="/usersArray")
public String selectAllUserArray (Model model) {
User[] userArray = new User[10];
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setName("jack" + i);
user.setPhone("13"+i+"11111111");
userArray[i] = user;
}
model.addAttribute("userArray", userArray);
return "user";
}
html
动态设置html标签中的id属性,比如:
good
这样会获取从后台传入的hello的值,然后将这个值作为id的值。
th:if
条件判断,比如后台传来一个变量,判断该变量的值,0为男,1为女:
男: 女: th:switch/th:caseswitch,case判断语句,比如:
性别:男
性别:女
性别:未知
th:value
类似html标签中的value属性,能对某元素的value属性进行赋值,比如:
th:inlineth:inline 有三个取值类型
text
从后台取出数据展示
Hello, [[user.nick]]</span>等同于:<span>Hello,<spanth:text="{user.nick}]]</span>
等同于:
<span>Hello, <span th:text="user.nick]]</span>等同于:<span>Hello,<spanth:text="{user.nick}">
none
有时候希望在html中直接显示[[1, 2, 3], [4, 5]],此时可以使用none
[[1, 2, 3], [4, 5]]!
javascript如果希望在JavaScript中获取后台相应的数据,可以使用下面内容: