コントローラ変数の値が Thymeleaf フラグメントに表示されない
温馨提示:
本文最后更新于 2024年04月12日,已超过 47 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
そこで、Java、JavaScript、Thymeleafを使用するSpring Bootプロジェクトがあり、私がやっていることは、文字列値を取得して、さまざまなページに挿入するナビゲーションバーのフラグメントに表示することです。 .out、変数「loggedInUsername」が正しい値を保持していることを確認できます。私が読んだどこでも、これが正しいはずだと書いていますが、ナビゲーションバーには値が表示されません。 ..
これが私のLoginController.javaです
package com.msu.ctap.Controllers;
import com.msu.ctap.Service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
@Controller
public class LoginController {
private final LoginService loginService;
@Autowired
public LoginController(LoginService loginService) {
this.loginService = loginService;
}
@GetMapping("/login")
public String loginPage() {
return "login";
}
@PostMapping("/loginUser")
public ModelAndView loginUser(@RequestParam("usernameOrEmail") String usernameOrEmail, @RequestParam("password") String password) {
boolean loginSuccessful;
loginSuccessful = loginService.loginUser(usernameOrEmail, password);
String loggedInUsername = loginService.emailUsername(usernameOrEmail);
ModelAndView modelAndView;
if (loginSuccessful) {
modelAndView = new ModelAndView(new RedirectView("/upload"));
System.out.println(loggedInUsername); //<--- Shows correct value
modelAndView.addObject("loggedInUsername", loggedInUsername);
} else {
modelAndView = new ModelAndView("login");
modelAndView.addObject("error", "Login failed. Please check your username/email and password.");
}
return modelAndView;
}
}
これが私のThymeleaf断片navbar.htmlです:
<div th:fragment="navbar">
<nav>
<ul>
<li><a th:href="@{/about}">Devs</a></li>
<li><a th:href="@{/upload}">Upload</a></li>
<li><a th:href="@{/home}"><span class="nav-title">CTAP</span></a></li>
<li><a th:href="@{/images}"}>Images</a></li>
<li><a th:href="@{/help}">Help</a></li>
<li>Welcome, <!--/*@thymesVar id="variableName" type="java.lang.String"*/-->
<span th:text="${variableName}">!</span></li>
</ul>
<div class="hamburger-menu-icon">☰</div>
</nav>
</div>
私の出力は次のとおりです。出力
私のプロジェクト構造は次のとおりです。構造
ModelAndView.addObject() を試して、ナビゲーション バーの外部のアップロード ページで Thymeleaf 変数挿入を使用してみました。 コントローラーが HTML フラグメントと通信できないような気がします
正文到此结束
- 本文标签: 家庭宠物
- 本文链接: https://www.coder6.net/article/2550
- 版权声明: 本文由蚂蚁原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
-
浏览(192) 评论(0)