gpt4 book ai didi

java - 自从更改 SpringBoot 依赖性以来,在空字段上加入时出现 Freemarker 错误

转载 作者:行者123 更新时间:2023-11-30 10:37:23 26 4
gpt4 key购买 nike

已解决:错误已经存在,我只是假设我最近创建了它...


我有一个使用 SpringMVC 和 Freemarker 的项目。
在我的 Controller 中,我向名为 activities 的模型添加了一个属性,如下所示:

@GetMapping("/activities/{floorId}")
public String activities(Model model, @PathVariable String floorId) {
model.addAttribute("activities", activityService.getActivitiesForFloor(floorId));
return "floor/activities";
}

activities 有一个名为 involvedTiles 的字段,该字段有时为 null。这很好。
在我的 Freemarker View 中,我像这样使用模型属性:

<#list activities as activity>
<tr>
<td>${activity.id}</td>
<td>${activity.involvedTiles?join(", ")}</td>
</tr>
</#list>

这一直有效(从未出错)。但是现在我突然得到这个错误:

2016-10-21 13:56:17,163 ERROR [http-nio-8080-exec-10] o.a.c.c.C.[.[.[.[dispatcherServlet] [DirectJDKLog.java:181] 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:
==> activity.involvedTiles [in template "floor/activities.ftl" at line 51, column 27]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present#deleted-channelwhen-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
...etc...

我知道我收到了这个错误,因为 activity.involvedTilesnull 并且我尝试将它与 ?join() 功能。但我不明白为什么这突然停止工作。我唯一能想到的是我已经将我的 SpringBoot 依赖项从 1.3.0.RELEASE 更新到 1.4.1.RELEASE。在 SpringBoot 1.3.0 中,他们使用 org.freemarker 2.3.23在 SpringBoot 1.4.1 中,他们使用 org.freemarker 2.3.25-incubating .
我的问题:Freemarker 是否更改了某些内容,这就是我收到此错误的原因吗?


我检查了 site of freemarker 2.3.23freemarker 2.3.25但找不到解释此错误的内容。

最佳答案

?join 从未打算容忍 null,而且据我所知也没有这样的错误(意外地允许 null)知道。另外,我已经用 FreeMarker 2.3.21(一个非常旧的版本)尝试过这个,它仍然不允许那里有 null

关于java - 自从更改 SpringBoot 依赖性以来,在空字段上加入时出现 Freemarker 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40178262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com