美文网首页
thymeleaf—表达式的使用

thymeleaf—表达式的使用

作者: 长天和秋水 | 来源:发表于2018-09-06 13:22 被阅读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>

    相关文章

      网友评论

          本文标题:thymeleaf—表达式的使用

          本文链接:https://www.haomeiwen.com/subject/uqotgftx.html