以下是实例:
<div sec:authorize="isAuthenticated()" class="row" >
<div class="dropdown">
<a class=" dropdown-toggle" href="/u/waylau" th:href="@{'/u/' + ${#authentication.name}}" data-toggle="dropdown"><span sec:authentication="name"></span></a>
<div class="dropdown-menu" >
<a class=" dropdown-item" href="/u/waylau" th:href="@{'/u/' + ${#authentication.name}}">个人主页</a>
<a class="dropdown-item" href="/u/waylau/profile" th:href="@{'/u/' + ${#authentication.name}} + '/profile'" >个人设置</a>
<a class="dropdown-item" th:href="@{/admins}" th:if="${#authentication.name}=='admin'" >管理系统</a>
</div>
</div>
<div>
<a href="/u/waylau/blogs/edit" th:href="'/u/' + ${#authentication.name} + '/blogs/edit'" class="btn btn-outline-success my-2 my-sm-0">写博客</a>
</div>
<form action="/logout" th:action="@{/logout}" method="post">
<input class="btn btn-outline-success " type="submit" value="退出">
</form>
</div>
解决方法:
thymeleaf
的版本应该和 Thymeleaf extras
版本匹配。
设置thymeleaf-layout-dialect.version
比如:都用3.+
pom.xml添加
<properties>
<java.version>1.8</java.version>
<thymeleaf.version>3.0.3.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.2.0</thymeleaf-layout-dialect.version>
</properties>
<!-- https://mvnrepository.com/artifact/org.thymeleaf.extras/thymeleaf-extras-springsecurity4 -->
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity4</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>