首先要明白Thymeleaf是一个用来渲染数据的模板引擎,既然是用来渲染数据的,自然得有数据才能进行渲染。然后在今天的项目练习中,突然出现"th:text"无法覆盖标签内内容的问题没最严重的是无法获得/login的controller中的session中存储的username。
出现这种情况的原因是:/login的controller成功后跳转到index.html,将数据带到了index.html页面,而在index.html页面内点击的超链接则跳转到了A.html页面,但是并没有数据传递过来,所以无法进行模板数据渲染。
解决方案:将超链接对应一个controller,可以采用参数变量的方式,让多个超链接通过同一个controller跳转到对应的页面。
如下:
HTML页面对应的超链接:
<li role="presentation"><a href="/kinds?specific=qihuan">奇幻</a></li>
<li role="presentation"><a href="/kinds?specific=xuanhuan">玄幻</a></li>
<li role="presentation"><a href="/kinds?specific=wuxia">武侠</a></li>
controller:
@GetMapping("/kinds")
public String specificPage(@RequestParam("specific") String specific,
HttpSession session) {
return "" + specific + "";
}