当前位置:网站首页>九十八、freemarker框架报错 s.e.ErrorMvcAutoConfiguration$StaticView : Cannot render error page for request
九十八、freemarker框架报错 s.e.ErrorMvcAutoConfiguration$StaticView : Cannot render error page for request
2022-04-23 11:53:00 【托马斯-酷涛】
报错信息

2022-04-22 12:59:38.904 ERROR 16164 --- [nio-8888-exec-1] freemarker.runtime : Error executing FreeMarker template
freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> pageContext [in template "courseAdd.html" at line 84, column 29]----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
--------
FTL stack trace ("~" means nesting-related):
- Failed at: ${pageContext.request.contextPath} [in template "courseAdd.html" at line 84, column 27]
----
后端代码

前端代码

其功能要实现下拉框,添加了option却显示不出来(如下图),并且后端数据已经拿到(打印在控制台了),心想就是前端这里拿不到数据。

回头看报错信息,发现
o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
大致意思为:Servlet请求处理失败,可能为空值或缺失值
问题分析
那应该就是空值的问题,导致下拉框无法正常显示,teacherNames中存在空值
看日志 给出了处理办法即(上方标红加粗的提示) 添加
<div class="layui-input-block">
<!-- <#if myOptionalVar??>when-present<#else>when-missing</#if>-->
<select id="baseCourseSelect" lay-search>
<option>--请选择——</option>
<#list teacherNames as tname>
<option value="${tname}">${tname}</option>
</#list>
</select>
</div>
后来通过查找找到了最终解决方法:
问题解决
在配置项(application.yml)中加入全局去空值的设置:
spring.freemarker.settings.classic_compatible= true

注意 true 前面有一个空格,不然不会生效。
最终效果

版权声明
本文为[托马斯-酷涛]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_54925305/article/details/124343229
边栏推荐
- Analyze the rules for the use of robots with good performance
- 2022 love analysis · panoramic report of industrial Internet manufacturers
- 力扣-1137.第N个泰波那契数
- 激活函数之阶跃函数
- Windows11 安装MySQL服务 提示:Install/Remove of the Service Denied
- ES6 learning notes II
- 用户接口和IM表达式(IM 5.6)
- Interpretation of biological recognition in robot programming course
- 零钱兑换II——【LeetCode】
- Fabric 1.0源代码分析(33) Peer #peer channel命令及子命令实现
猜你喜欢

配电房远程综合监控系统在10kV预制舱项目中的应用

如果你是一个Golang面试官,你会问哪些问题?

Interpretation of 2022 robot education industry analysis report

Understanding of MQ

探究机器人教育的器材与教学

科创人·派拉软件CEO谭翔:零信任本质是数字安全,To B也要深研用户心智

qt5. 8. You want to use SQLite in the 64 bit static library, but the static library has no method to compile the supporting library

激活函数之relu函数

rebbitMQ的简单搭建

Database design of forum system
随机推荐
Laravel绑定钉钉群警报(php)
用户接口和IM表达式(IM 5.6)
Precautions for PCB
解决由于找不到amd_ags_x64.dll,无法继续执行代码。重新安装程序可能会解决此问题,地平线(Forza Horizon 5)
C# F23.StringSimilarity库 字符串重复度、文本相似度、防抄袭
Laravel always returns JSON response
redis优化系列(二)Redis主从原理、主从常用配置
The fourth chapter is about enabling and disabling the im column storage of table space for im enabled filling objects (IM 4.5)
配电房远程综合监控系统在10kV预制舱项目中的应用
Win10 splash screen after startup
Share two practical shell scripts
Significance of actively participating in middle school robot competition
How Im expressions work (5.3)
Link sorting of tutorials such as assembly language running environment setting
Purpose of IM expression (IM 5.2)
Redis learning 5 - high concurrency distributed lock practice
Interpretation of biological recognition in robot programming course
Windows11 安装MySQL服务 提示:Install/Remove of the Service Denied
The listing of saiweidian Technology Innovation Board broke: a decrease of 26% and the market value of the company was 4.4 billion
Optimize connections using connection groups (IM 6)