thymeleaf—表达式的使用

2018-09-06  本文已影响0人  长天和秋水

今天在代码中看到这样的写法:

<title th:inline="text">[[#{title.company.name}]]-登录</title>

不明白[[#{title.company.name}]] 表达式为什么这样写;下面来详细的介绍下。

原来这块是thmeleaf中表达式的知识

[[…]]之间的表达式在Thymeleaf被认为是内联表达式,在其中可以使用任何类型的表达式,为了让内联工作,我们必须激活它使用th:inline 属性,此属性有三种值(text , javascript and none)。

例:

正确的写法:

<p th:inline="text">Hello, [[${session.user.name}]]!</p>也可以写为:

<p th:text="${session.user.name}"></p>

错误的写法:

<p>Hello, [[${session.user.name}]]!</p>   这样[[${session.user.name}]]表达是就无法解析了;必须在<p>标签中增加th:inline属性,

th:inline="text"属性的用法(文本内联)

<p th:inline="text">Hello, [[${session.user.name}]]!</p>  也可以把th:inline 属性放到父标签上;

th:inline="javascript" 属性的用法(脚本内联)

<script th:inline="javascript">

    if(top.document.domain == [[#{top.document.domain}]]) {

        document.documentElement.style.display='block' ;

    }else {  top.location = [[#{top.location}]] ;

    }

</script>

作用:在js中给变量赋值。th:inline="javascript"表示能在js中使用[ [] ]取值。只有加入th:inline="javascript"在js代码中才能使用[ [...] ]

thymeleaf #、* 和$的区别

1.$符号取上下文中的变量:

<input type="text" name="userName"  th:value="${user.name}">

2.#符号取thymeleaf工具中的方法、文字消息表达式:

<p th:utext="#{home.welcome}">Welcome to our grocery store!</p>

3. *{...}选择表达式一般跟在th:object后,直接选择object中的属性

<div th:object="${session.user}">

<p th:text="*{name}"/><div>

上一篇下一篇

猜你喜欢

热点阅读