spring boot的首荐页面模板引擎thymeleaf,其母版页的思想就是缝百纳衣,将可公用的东东做成一个个片段(fragment),然后在每个页面上加以引用,以达到复用的效果。

某页面

<body>
<th:block th:include="_submenu::submenu(curicon=hi.png,marginleft=65)" />
……
</body>

公用片段(_submenu.html)

<block th:fragment="submenu(curicon)">
<div><div><img th:src="${curicon}" /></div><div th:style="'margin-left:' + ${marginleft ?: '37'} + '%;'"><span>殷勤昨夜三更雨,又得浮生一日凉</span></div>
</div>
</block>

细看这两段代码,可知thymeleaf调用片段的格式为:

th:include="片段页面路径::片段名(参数1,……)"

在实际编程中,有时候我们可能会用到可选参数。就是这个参数,我既可以传递,也可以不传递。那么在thymeleaf中,支不支持可选参数?如何实现可选参数?

支持。实现方式类似我们main方法里的void main(string[] args)这种方式。参数不一定需要声明,个数也不限制,只要在调用的时候传过来就行,函数体中直接使用。看看上面的例子就可以发现:
调用的时候,传了一个marginleft=65,而在片段中根本没有声明这个marginleft,但直接使用了

<div th:style="'margin-left:' + ${marginleft ?: '37'} + '%;'">

当然因为是可选参数,使用的时候做了防御,先判断有没有,有就使用,没有就给个默认值37。

thymeleaf fragments可选参数相关推荐

  1. 如何定义带有可选参数的函数python_Python如何定义有可选参数的元类

    问题 你想定义一个元类,允许类定义时提供可选参数,这样可以控制或配置类型的创建过程. 解决方案 在定义类的时候,Python允许我们使用 ``metaclass``关键字参数来指定特定的元类. 例如使 ...

  2. php laravel用的多不,php-Laravel多个可选参数不起作用

    在使用带有2个可选参数的路线时, Route::get('/abc-{abc_id?}/xyz-{xyz_id?}', function($abc_id=0, $xyz_id=0) { return ...

  3. [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性

    前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈 ...

  4. 《CLR Via C# 第3版》笔记之(十) - 可选参数和可变数量参数

    C#中也可以像动态语言那样,定义可选参数和可变数量参数.通过使用可选参数和可变数量参数可以构建更加灵活的函数. 主要内容: 可选参数 可变数量参数 1. 可选参数 可选参数即调用函数时,传递参数的个数 ...

  5. C#可选参数、命名参数、参数数组

    学习了C#4.0的新特性:可选参数.命名参数.参数数组. 1.可选参数,是指给方法的特定参数指定默认值,在调用方法时可以省略掉这些参数. 但要注意: (1)可选参数不能为参数列表的第1个参数,必须位于 ...

  6. c# 可选参数与命名实参

    c#4.0: 链接:C# 可选参数 命名参数 转载于:https://www.cnblogs.com/lbonet/p/7249601.html

  7. php6 配置,thinkphp6路由可选参数配置

    thinkphp6 路由可选参数配置后#0 [0]InvalidArgumentException in Container.php line 455 方法参数错误:id 路由配置参考手册如下 可选变 ...

  8. 【Flutter】Dart 面向对象 ( 类定义 | 类的继承 | 私有变量 | 可选参数 | 默认参数 | 初始化列表 )

    文章目录 一. Dart 面向对象 二. 类定义 三. 类的继承 四. 私有变量 五. 可选参数与默认参数 六. 初始化列表 七. 完整代码示例 八. 相关资源 一. Dart 面向对象 OOP 基本 ...

  9. 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数

    [索引页] [源码下载] 精进不休 .NET 4.0 (4) - C# 4.0 新特性之命名参数和可选参数, 动态绑定(dynamic), 泛型协变和逆变, CountdownEvent, Barri ...

最新文章

  1. mysql中文无法显示
  2. 如何去除 IDEA 中 xml 文件的屎黄色背景
  3. 【学术相关】为什么很多国内学者的AI的论文复现不了?
  4. linux tomcat8 启动慢,Linux系统下Tomcat8启动速度很慢的解决方法
  5. 深度学习《再探AE和VAE的区别》
  6. Pure-Ftp:基于虚拟账号的FTP服务器
  7. python粘性拓展_Python拓展
  8. python学习day33 hmac模块 socketserver模块
  9. 4200有linux版本么,如何检查Linux版本
  10. 基于asp.net的大学生助学贷款管理系统
  11. PXE启动livecd
  12. IDEA打包jar-解决错误: 找不到或无法加载主类 main
  13. python电影名称词云_Python爬取最近上映的电影评论并生成词云——误杀
  14. 淘特,阿里在下沉市场的一把好刀
  15. matlab randn state 2,matlab中randn(‘state’)
  16. Error launching IDEA
  17. 深度、广度优先遍历算法python
  18. 长安链---从零到一部署Chainmaker-2.0.0
  19. [转载记录]系统的UIM卡介绍
  20. 使用MDB查看变量的值(2)

热门文章

  1. 多款重磅翻译产品落地之际,我们独家专访了搜狗语音负责人王砚峰
  2. Qt Creater使用快捷键
  3. 如何升级libc.so.6以及升级后引发的灾难
  4. 应用之星:最好用的H5制作平台-附H5制作教程
  5. Linux MySQL的socket文件存在位置更改
  6. “公链为王”抑或“织链为网”,谁才是区块链发展的正途?
  7. Excel可用资源不足,无法完成此任务
  8. Java程序员必会!java工具栏不见了
  9. HTML5+——APP实现热更新
  10. 魅族推荐平台架构解析(三)