thymeleaf—表达式的使用

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

<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简介 前面的例子我们使用的视图技术主要是JSP。JSP的优点是它是Java EE容器的一部分,几...
    乐百川阅读 9,050评论 2 56
  • 董明珠说:“一毛钱都不想投资,一点都不想付出,却想着月入过万,十几万?那是梦。成功的人两会:开会,培训会。普通人的...
    JackRen阅读 146评论 0 1
  • 1. 朋友芳,平时月经量很多,她听说四物汤补气血非常好,就在经期服用。结果量更多,十天都不干净。脸色苍白。 药是好...
    孙国飞扬阅读 334评论 4 9
  • “刘婆婆醒了!”陈娅燕高兴的差点拍起手来。 陈娅燕这是她第一次参与抢救,也是第一次心肺复苏术成功的经历,好比获得奖...
    码字致富的朱荣发阅读 593评论 0 1
  • 母亲马上就八十岁生日,做为长子我该做点什么来让母亲开心?年少的我从不记得妈哪天生日,结婚生子后又因忙碌而又忘记了为...
    爱海的老水手阅读 281评论 0 2