Spring Controller传POJO列表到HTML生成下拉菜单异常求助
问题分析与解决:Thymeleaf无法解析POJO字段值
问题现象
Controller已将List<Game>通过Model传递到页面,IDE能识别games列表,但页面渲染时直接显示${game.firstName}字面文本,无法解析Game对象的字段值。
问题根源及修正方案
- Thymeleaf属性语法错误:原生HTML的
value属性不会触发Thymeleaf解析,必须使用Thymeleaf专属的th:value属性,且表达式需用引号包裹。 - 文本内容未绑定Thymeleaf指令:
<option>的显示文本直接写${game.firstName}无法被解析,需要用th:text指令绑定字段值。 - 确认模板配置:确保HTML文件放在Spring Boot默认的Thymeleaf模板目录
src/main/resources/templates/下,文件后缀为.html。
修正后的HTML代码
<div class="formformat"> <br><br> <form> <label for="name">Name:</label><br> <select id="name" name="name"> <th:block th:each="game : ${games}"> <option th:value="${game.firstName}" th:text="${game.firstName}"></option> </th:block> </select><br><br> <label for="date">Date from:</label><br> <input type="text" id="date" name="date"><br><br> <label for="allresults">All entries</label><br> <input type="checkbox" id="allresults" name="allresults"><br><br> <input type="submit"> </form> </div>
内容的提问来源于stack exchange,提问作者Hywel Griffiths
相关产品推荐
相关产品推荐

