【发布时间】:2017-11-28 07:48:45
【问题描述】:
所以我一直在使用 Thymeleaf 和 Spring Boot 在我的计算机上创建一个“网站”,并且我有一个基本的、不安全的登录,我只是为了好玩。我目前正在尝试做的是创建一个链接,将您带回到基于前一个页面的链接,该链接通过模型作为字符串发送。
这里有几个sn-ps: 在控制器中:
@RequestMapping("/")
public String index(Model model) {
return ifLoggedIn(model, "home", "");
}
private String ifLoggedIn (Model model, String location, String returnTo) {
if (Login.loggedIn.getOrDefault(Login.IP(), Boolean.FALSE)) {
return location;
} else {
model.addAttribute("login", new Login());
model.addAttribute("return_page", returnTo);
return "login";
}
}
login.html文件中(登录成功后):
<body>
<a th:href="'/' + ${return_page}">Return to previous location</a>
</body>
编辑:
我首先更改 login.html 文件中的行以遵循 Pau 的建议:
<a th:href="@{'/' + ${return}}">Return to previous location</a>
但我一直被重定向到 server.local/null,所以我尝试删除 '/' + 并在 ifLoggedIn 参数中添加 /,所以它会是 return ifLoggedIn(model, "home", "/",但这也一直将我发送到 server.local /空值。现在,我只是将 login.html 文件中的行更改为以下内容:
<a th:if="(${return_page} != null)" th:with="return=(${return_page})" th:href="@{${return}}">Return to previous location</a>
现在它消失了,这意味着 ${return_page} 等于 null。回顾控制器,我不明白为什么它返回 null。另一件事,我也在重定向回其他页面,其中一行写着return ifLoggedIn(model, "messages", "/messages",但即使有这些,我仍然会被发送到 server.local/null。
【问题讨论】:
标签: spring spring-boot thymeleaf