我有settings page和他的控制器:

@RequestMapping(value = "/settings/password/change", method = RequestMethod.GET)
public String changePassword(Model model) {
    return "account/changepassword";
}


在此页面上有header,其中包含myaccount上的链接:
<a class="link" th:href="${currentUser.nickname}"><li class="li">User profile</li></a>
但是,如果我打开标题上的settings page链接,则具有URL:localhost:8080/settings/password/change/profilename。代替此,我需要类似localhost:8080/profilename的URL。我该怎么办?

最佳答案

之所以得到/settings/password/change/profilename,是因为th:href="${currentUser.nickname}"创建了相对于当前路径的相对URL:<a href="profilename"/>

而是尝试使用以下Thymeleaf syntax来构建上下文相关的URL:

<a th:href="@{/{profilename}(profilename=${currentUser.nickname})}">link</a>

07-24 21:29