Spring boot 程序中,后台对 thymeleaf 视图传值我知道, 控制方法里 model.addAttribute()就行了,但是能否对 fragment 传值呢?
未找到有帮助的信息,故发帖询问,感激不尽。
1
ysyk 2020-01-03 08:10:01 +08:00 1
是的,可以。与引用的页面其他参数相同。
|
2
ysyk 2020-01-03 08:11:16 +08:00 1
我的写法 <div th:replace="header :: footer"></div>
<div th:fragment="footer"> </div> |
3
ufan0 OP @ysyk #2 首先感谢回复,应该是我没表达清楚想询问的点;
我是想知道后台对 fragment 传值😂,因为剥离了多个页面的公共部分至 fragment,但是有些参数得传至 fragment,比如页面 title、description,若是每个 url 映射都写个 model.addAttribute()就太难看了; |
4
Andy00 2020-01-03 08:40:49 +08:00 1
可以,刚刚用了这功能。像调用函数一样往需要传参数的 fragment 里放入参数就行了,参考我的代码
```html <div th:replace="commons/bar::sidebar(activeURI='kpi', employees=${employees})"></div> ``` employees 是一个在 model 里传过来的 list |
5
Andy00 2020-01-03 08:42:40 +08:00 1
咦居然不支持代码标签。
activeURI 和 employees 就是两个传到 sidebar fragment 里的参数 |
6
iwiki 2020-01-03 08:49:59 +08:00 via iPhone 1
<!-- 菜单递归 -->
<th:block th:fragment="listmenu(menus)"> <th:block th:each="menu : ${menus}"> <th:block th:if="${menu.getMenus().size()>0}"> <li class="nav-item has-treeview"> <a href="#" class="nav-link"> <i class="nav-icon fas fa-tachometer-alt"></i> <p> <span th:text="${menu.getName()}"></span> <i class="right fas fa-angle-left"></i> </p> </a> <ul class="nav nav-treeview"> <th:block th:include="this::listmenu(${menu.getMenus()})"/> </ul> </li> </th:block> <th:block th:if="${menu.getMenus().size()==0}"> <li class="nav-item"> <a href="#" th:href="${menu.getUri()}" class="nav-link"> <i class="far fa-circle nav-icon"></i> <p th:text="${menu.getName()}"></p> </a> </li> </th:block> </th:block> </th:block> 参考这个吧,函数传值 |
7
ysyk 2020-01-03 08:54:06 +08:00 2
|