freemarker中的哈希键支持哪些类型?

问题描述 投票:0回答:1

我们可以在Freemarker中使用任何类型的哈希键吗?

例如:

在Java中,我们有:Hash<User, Boolean> mapUserToSelected = new HashMap<>()

在Freemarker中,我们有:

<#list mapUserToSelected as user, selected>
  <p>${user.name}</p>
  <p>${selected?c}</p>
</#list>

但是,我们得到了[<p>${selected?c}</p>“以下内容评估为空或丢失”],并且我确定它存在于地图中。

如果我使用String作为哈希Hash<String, Boolean> mapUserToSelected = new HashMap<>()的键,它将起作用。

哈希键仅需要是String吗?

freemarker
1个回答
0
投票

对象mapUserToSelected可以包含任何Object作为键,内置?c将是convert a string to numeric。不知道为什么要将其应用于布尔值。

[也不要混淆自己:当我们想将对象mapUserToSelected从逻辑(控制器)发送到UI时,则基于TemplateHashModel的定义,键必须为String时。示例:

ModelAndView mainView = new ModelAndView();
mainView.getModel().put("usersMap", mapUserToSelected );

但是对象本身可以包含任何东西,如果您对每个键的值感兴趣,则可以使用mapUserToSelected?keys获取键列表,然后使用?index访问每个键列表。

© www.soinside.com 2019 - 2024. All rights reserved.