(1)内联表达式
有些情况下更喜欢将表达式直接写入到 HTML 文本中。
内联表达式:<p>Hello, [[${stu.name}]]</p>
或者这样写:<p>Hello, <span th:text="${stu.name}"></span></p>
内联表达式用法
◼ [[…]] 等价于 th:text,结果被HTML转义
◼ [(…)] 等价于 th:utext,结果不执行任何HTML转义
“[[”、"]]"、"[("、")]" 连在一起写,不能有空格
- 后台代码
@RequestMapping("/th")
public String index(Model model) {
model.addAttribute("msg", "Love you <b>中国</b>!");
return "th/index";
}
- 前端代码
<body>
<p>hello, [[${msg}]]</p>
<p>hello, [(${msg})]</p>
</body>
- 运行结果
禁用内联
◼ 实际应用中想输出 [[…]] 或 [(…)]
◼ th:inline = "none"
来禁用内联
<body>
<p th:inline = "none" >hello, [[${msg}]]</p>
<p th:inline = "none" >hello, [(${msg})]</p>
</body>
运行结果:
内联 JS
◼ JS 无法获取服务端返回的变量,通过内联就可以获取。
◼ 在 <script>
标签中添加 th:inline ="javascript"
来启用内联 JS。
◼ JS 内联表达式常用:[[${xx}]]
注:内联JS只能用在HTML文件内部的JS代码,不能识别引入的外部JS里面的内联表达式。
- 控制器代码
@RequestMapping("/edit")
public String edit( Model model){
Student s=new Student(2019001,"小明");
model.addAttribute("stu",s);
model.addAttribute("msg", "Love you <b>中国</b>!");
return "th/form";
}
- 前端代码
<body>
<script th:inline="javascript"> var id = [[${
stu.id}]] ; var name = [[${
stu.name}]] ; var msg = [[${
msg}]] ; //var msg = [(${msg})] //会报错 console.log(id, name, msg); </script>
</body>
- 运行结果
内联 CSS
◼ 在 <style >
标签添加th:inline="css"
开启内联 CSS。
◼ CSS 内联表达式常用:[(${xx})]
与内联 JS 一样,内联 CSS 同样只能在 HTML 内嵌的
<style>
标签中进行使用不能在外部导入的 CSS 文件中进行使用。
- 控制器代码
@RequestMapping("/edit")
public String edit( Model model){
model.addAttribute("width","200px");
model.addAttribute("bg","#f6f6f6");
return "th/form";
}
- 前端代码
<body>
<style th:inline="css"> p {
width: [(${
width})] ; background-color: [(${
bg})] ; } </style>
<p th:text="${stu.id}">学号</p>
<p th:text="${stu.name}">姓名</p>
</body>
- 运行结果