当前位置: 首页 > news >正文

有效的网站建设公司深圳营销型网站定制

有效的网站建设公司,深圳营销型网站定制,阳泉网站建设费用,金蝶直播Thymeleaf的高级用法 主要介绍Thymeleaf的内联、内置对象、内置变量等高级用法。 1.内联 虽然通过Thymeleaf中的标签属性已经几乎满足了开发中的所有需求,但是有些情况下需要在CSS或JS中访问后台返回的数据。所以Thymeleaf提供了th:inline"text/javascript/…

Thymeleaf的高级用法

主要介绍Thymeleaf的内联、内置对象、内置变量等高级用法。

1.内联

虽然通过Thymeleaf中的标签属性已经几乎满足了开发中的所有需求,但是有些情况下需要在CSS或JS中访问后台返回的数据。所以Thymeleaf提供了th:inline="text/javascript/none"标签,使用[[…]]内联表达式的方式在HTML、JavaScript、CSS代码块中轻松访问model对象数据。

1.1 文本内联

Thymeleaf内联表达式使用[[…]]或[(…)]语法表达。先在父级标签定义使用内联方式th:inline=“text”,然后在标签内使用[[…]]或[(…)]表达式操作数据对象。文本内联比th:text的代码更简洁。下面通过示例演示内联的使用方式。

首先,创建页面inline.html。示例代码如下:

<h1>Thymeleaf模板引擎</h1>
<div><h1>内联</h1><div th:inline="text"><p>Hello[[${userName}]] !</p><br/></div>
</div>

以上代码等价于:

    <div th:inline="text"><h1>不使用内联</h1><p th:text=" 'Hello’, + ${userName} + '!'"></p><br/></div>

通过以上两个示例可以看出使用内联语法会更简洁一些。

1)th:inline="text"表示使用文本内联方式。

2)任何父标签都可以加上th:inline。

3)[[…]] 等价于th:text结果将被HTML转义,[(…)]等价于th:utext结果不会被HTML转义。

然后,创建后台路由/inline,示例代码如下:

    @RequestMapping("/inline")public String inline(ModelMap map) {map.addAttribute("userName", "admin");return "inline";}

在上面的示例中,后台返回inline.html页面,同时返回userName=admin。

最后,运行测试。启动项目后,在浏览器中输入地址http://localhost:8080/inline,则会出现如图所示的结果。

在这里插入图片描述

页面显示后台返回的userName为admin,比之前介绍的th:text=${userName}的方式更加简单、清晰。

1.2 脚本内联

脚本内联,顾名思义就是在JavaScript脚本中使用内联表达式。使用时只需要在<script>标签上加入th:inline="javascript"属性,然后在JavaScript代码块中就能使用[[]]表达式。实现在JavaScript脚本中获取后台传过来的参数。

首先,修改inline.html页面,增加如下脚本:

<script th:inline="javascript">var name = 'hello, ' + [[${userName}]];alert(name);
</script>

在上面的示例中,在<script>标签内加入th:inline=“javascript”,表示能在JavaScript中使用[ [ ] ]取值。在访问页面时,根据后端传值拼接name值,并以alert的方式弹框展示。

然后启动项目,在浏览器中输入地址http://localhost:8080/inline,会出现如图所示的结果。

在这里插入图片描述

显示页面会先弹出一个alert提示框,显示“hello admin”,说明使用脚本内联绑定了后台传过来的数据。

1.3 样式内联

Thymeleaf还允许在<style>标签中使用内联表达式动态生成CSS属性样式。下面通过示例演示内联CSS样式的用法。

首先,修改inline.html页面,加入如下样式:

<style type="text/css" th:inline="css" th:with="color='yellow', fontSize='25px'">p {color: /*[[${color}]]*/ red;font-size: [(${fontSize})];}
</style>

在上面的示例中,与内联JavaScript一样,CSS内联也允许

然后,修改/inline路由,返回fontSize和color,示例代码如下:

    @RequestMapping("/inline")public String inline(ModelMap map) {map.addAttribute("fontSize", "20px");map.addAttribute("color", "yellow");map.addAttribute("userName", "admin");return "inline";}

在上面的示例中,增加了fontSize和color两个CSS的属性样式,设置fontSize为20px,color为yellow。

然后启动项目,在浏览器中输入地址http://localhost:8080/inline,页面显示的字体大小和颜色根据后台返回的数据显示,说明CSS内联生效。

1.4 禁用内联

Thymeleaf支持使用th:inline =“none”来禁止使用内联。示例代码如下:

<!--/*禁用内联表达式*/-->
<p th:inline="none">[[${info}]]</p>
<!--/*禁用内联表达式*/-->
<p th:inline="none">[[Info]]</p>

2.内置对象

Thymeleaf包含一些内置的基本对象,可以用于视图中获取上下文对象、请求参数、Session等信息。这些基本对象使用#开头,如表所示。

在这里插入图片描述
如表所示,Thymeleaf提供了有一系列的对象和属性用于访问请求参数、会话属性等应用属性。下面以其中两个常用的对象作为示例来演示。

步骤01 定义后台方法传值。

创建一个后台方法,后台传回request请求参数和session属性,示例代码如下:

    @RequestMapping("/object")public String test1(HttpServletRequest request) {request.setAttribute("request", "spring boot");request.getSession().setAttribute("session", "admin session");request.getServletContext().setAttribute("servletContext", "Thymeleaf servletContext");return "baseobject";}

在上面的示例中,我们分别在request和session对象中写入了相关的测试,验证前台是否能获取到这些自定义的Web请求信息。

步骤02 前端页面接收参数。

接下来看看前端页面如何通过Thymeleaf内置的基本对象获取后端传递的值,在/resources目录下新建一个前端页面baseobject.html,示例代码如下:

<h1>Thymeleaf模板引擎</h1>
<h3>基本对象</h3>
<p th:text="${#request.getAttribute('request')}"></p>
<p th:text="${#session.getAttribute('session')}"></p>
<p th:text="${#servletContext.getAttribute('servletContext')}"></p>

在上面的示例中,我们在HTML页面中通过#request、#session这些对象就能获取Web请求中的相关信息。

步骤03 启动验证。

启动项目后,在浏览器中输入地址http://localhost:8080/object,则会出现如图所示的结果。

在这里插入图片描述

在HTML页面中,通过#request、#session这些对象成功获取了后台返回的Web请求信息。

3.内嵌变量

为了模板更加易用,Thymeleaf还提供了一系列公共的Utility对象(内置于Context中),可以通过#直接访问。具体的对象如表所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Thymeleaf除了定义上面这些常用的对象外,还有一些其他的utility对象,比如#ids,这里不再逐一列举。

http://www.ds6.com.cn/news/122017.html

相关文章:

  • 大连网站建设方法2023最火的十大新闻
  • wordpress后台菜单seo网站推广优化论文
  • 网站开发说明书安卓手机优化大师官方下载
  • 自建网站 服务器百度首页推广
  • 怎样做付费下载的网站济南seo关键词优化方案
  • 浏阳商务局网站溪江农贸市场建设病毒什么时候才能消失
  • 自己建网站花钱吗北京百度关键词推广
  • 扬州建设银行网站南宁网络推广有几家
  • 深圳网站建设大公司排名多用户建站平台
  • 影视公司网站模板人工智能培训班
  • 怎么做旅游网站推广网站seo谷歌
  • 哪个做网站平台好关键词歌词任然
  • 今日头条母公司做网站规划怎么推广一个网站
  • 在什么网站可以做推广优化关键词的方法包括
  • 自己做的网站有排名吗百度快照功能
  • 网站建设套餐小程序定制开发
  • 都匀网站开发百度问答
  • porto wordpressseo搜索优化技术
  • wordpress 移动 主题企业新网站seo推广
  • 网站建设中什么意思黑帽seo培训网
  • 网站制作报价单模板站长工具端口检测
  • 网站建设颜色互联网推广是什么意思
  • 招聘网站数据分析怎么做百度关键词检测工具
  • 有哪些网站可以做外贸批发百度网站怎样优化排名
  • wordpress清空演示数据库武汉网站优化公司
  • 邯郸信息港二手物品出售江门seo外包公司
  • 网站制作品牌有哪些酒店营销推广方案
  • 长春净月潭建设投资集团网站sem搜索
  • 吉林测试网站建设检修上海优化公司
  • 厦门孚珀科技 网站开发唐山网站建设方案优化