Thymeleaf流程控制语法

if判断语句

如果if条件满足,则此标签留下,若if条件不满足,则此标签自动被移除

我是判断条件标签

 

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Context context = new Context();
    context.setVariable("eval", true);
    engine.process("test.html", context, resp.getWriter());
}

th:if`会根据其中传入的值或是条件表达式的结果进行判断,只有满足的情况下,才会显示此标签

- 如果值不是空的:

  - 如果值是布尔值并且为`true`。

  - 如果值是一个数字,并且是非零

  - 如果值是一个字符,并且是非零

  - 如果值是一个字符串,而不是“错误”、“关闭”或“否”

  - 如果值不是布尔值、数字、字符或字符串。

- 如果值为空,th:if将计算为false

`th:if`还有一个相反的属性`th:unless`,效果完全相反

多分支条件判断,可以使用`th:switch`属性来实现

我是1
我是2
我是3

只不过没有default属性,但是可以使用`th:case="*"`来代替

我是Default

可以使用`th:each`来进行遍历操作

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Context context = new Context();
    context.setVariable("list", Arrays.asList("伞兵一号的故事", "倒一杯卡布奇诺", "玩游戏要啸着玩", "十七张牌前的电脑屏幕"));
    engine.process("test.html", context, resp.getWriter());
}

 

`th:each`中需要填写 "单个元素名称 : ${列表}",这样,所有的列表项都可以使用遍历的单个元素,只要使用了`th:each`,都会被循环添加

获取当前循环的迭代状态,只需要在最后添加`iterStat`

从中可以获取很多信息

- 当前*迭代索引*,以0开头。这是`index`属性。

- 当前*迭代索引*,以1开头。这是`count`属性。

- 迭代变量中的元素总量。这是`size`属性。

- 每个迭代的*迭代变量*。这是`current`属性。

- 当前迭代是偶数还是奇数。这些是`even/odd`布尔属性。

- 当前迭代是否是第一个迭代。这是`first`布尔属性。

- 当前迭代是否是最后一个迭代。这是`last`布尔属性。

你可能感兴趣的:(servlet,java,前端)