【问题标题】:Freemarker not finding existing element in hashFreemarker 在哈希中找不到现有元素
【发布时间】:2013-11-13 16:10:19
【问题描述】:

在 Freemarker 中有一个非常奇怪的问题。我有一个 JSON 映射 prices,其中包含一些对(字符串 - > 对象)。以下代码应打印地图中的所有对:

[#list prices?keys as prop]
    ${prop?c} ${prices[prop?c]!"nothing"} 
[/#list]

但结果是:

1000010786 nothing 1000010704 nothing 

也就是说,它找到了键,但是在查找与键链接的元素时,它说没有这样的元素。有人知道为什么会这样吗?

【问题讨论】:

  • 你确定键是String-s,而不是数字吗?因为您在它们上应用?c,所以我想它们是数字。
  • @ddekany 据我了解,应用 ?c 将其转换为字符串?
  • 是的,但是如果价格有非字符串键,它将找不到带有字符串键的项目。当然,那你就有[]只支持字符串键的问题了……不过那是另外一个问题了。
  • @ddekany 你是对的,我们假设它们是字符串,但它们是数字,哎呀。请回答问题,以便我可以给你积分:)

标签: java freemarker


【解决方案1】:

问题是您在Map 中的键不是String-s 而是数字,但是对于[],您提供String,因为?c 将数字转换为字符串。删除?c 将导致另一个问题,因为[] 仅支持String 键...关于这一点,请在此处查看我的答案:FreeMarker Complex Collection

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 2017-04-12
    • 2015-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多