# thymeleaf在引入片段的时候加入参数,使菜单动态高亮

1、为了管理起来方便,我们把所有公共片段全部放入一个HTML文件中。

有两种方式引入

方法一:在源片段中添加 th:fragment=“片段名”

<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" th:fragment="topbar">
    <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#">[[${session.username}]]</a>
    <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
    <ul class="navbar-nav px-3">
        <li class="nav-item text-nowrap">
            <a class="nav-link" href="#">Sign out</a>
        </li>
    </ul>
</nav>

在引入的时候使用

<div th:replace="~{commons/navbars::topbar}"></div>

方法二:在源片中使用ID号

<nav class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0" id="topbar">
    <a class="navbar-brand col-sm-3 col-md-2 mr-0" href="#">[[${session.username}]]</a>
    <input class="form-control form-control-dark w-100" type="text" placeholder="Search" aria-label="Search">
    <ul class="navbar-nav px-3">
        <li class="nav-item text-nowrap">
            <a class="nav-link" href="#">Sign out</a>
        </li>
    </ul>
</nav>

在引入的时候使用

<div th:replace="~{commons/navbars::#topbar}"></div>

2、在片段源中加入判断,如果引入的链接参数是main则……

<li class="nav-item">
    <a class="nav-link active" href="#" th:href="@{/main}" th:class="${activeUrl=='main' ? 'nav-link active' : 'nav-link'}">
        <span data-feather="home"></span>
        数字仪表盘<span class="sr-only">(current)</span>
    </a>
</li>

3、在引入片段的地方加入参数,参数可以多个,用英文’,'隔开

<div th:replace="~{commons/navbars::#leftbar(activeUrl='main')}"></div>

以上方式可以实现,当引入某个片段后,加入参数即可动态实现菜单高亮。