SpringBoot中Thymeleaf表达式未渲染,页面无法显示数据
问题解决:Thymeleaf表达式${value}未渲染直接显示文本
问题根源
控制器中往HttpSession存数据时,属性键名写错了——你用了"value:"(带冒号),但页面里Thymeleaf表达式引用的是${value}(无冒号),键名不匹配导致框架找不到对应值,只能原样输出表达式文本。
修复步骤
- 修改控制器
First.java里的session.setAttribute方法,把键名从"value:"改成"value"; - 重启SpringBoot项目,重新点击链接测试。
修正后的控制器代码
package com.progrank.maven.MavenApp.Class; import jakarta.servlet.http.HttpSession; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class First { @RequestMapping("/index") public String hello(){ return "index"; } @RequestMapping("/result") public String index(String data, HttpSession session){ System.out.println("Data:"+data); // 修正键名,移除多余的冒号 session.setAttribute("value", data); return "result"; } }
确认页面代码无需修改
你的result.html代码是正确的,保持原样即可:
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <br>Your output is: <span th:text="${value}"></span> </body> </html>
内容的提问来源于stack exchange,提问作者aman patel
相关产品推荐
相关产品推荐

