在今天跟着Java Web课程时,进行项目的Servlet优化时,将各种servlet的功能整合在一个servlet中时,发现最后执行时,Thymeleaf的视图出现了问题。
问题截图:
问题解决:
第一时间看了idea中控制台下tomcat日志选项卡,发现了报错
部分报错如下:
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "@{/fruit.do(fid=${fruit.fid},operate="edit")}" (template: "index" - line 30, col 39)
不能解析表达式,部分错误代码(th:href出现错误):
<tr th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit:${session.fruitList}">
<td><a th:text="${fruit.fname}" th:href='@{/fruit.do(fid=${fruit.fid},operate="edit")}'>Fruit</a></td>
<td th:text="${fruit.price}">0</td>
<td th:text="${fruit.fcount}">0</td>
<td><img src="imgs/del.jpg" class="delImg" th:onclick="|delFruit(${fruit.fid})|"/></td>
</tr>
发现是thymeleaf在解析URL时的语法出现了问题,单引号和双引号用法有误
正确代码如下:
<td><a th:text="${fruit.fname}" th:href="@{/fruit.do(fid=${fruit.fid},operate='edit')}">Fruit</a></td>