[
https://issues.apache.org/jira/browse/FREEMARKER-8?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14999160#comment-14999160
]
Daniel Dekany commented on FREEMARKER-8:
----------------------------------------
OK, part of my above answers was hasty...
There is {{++}} in FTL, but it can only be use in assignments. You can't modify
the value of a variable in the middle of a generic expression.
As of the feature request, not everyone will agree that allowing map and list
modifications in a template is a good strategy. You aren't supposed to modify
the data model. It can happen though that such operation would be useful for
internal calculations, so that's a valid reason for it. OTOH we don't want to
encourage people to implement complex algorithms in FTL... it's not a
programming language, it's just a template language language.
Also, if you really need to do that, and you know that you have a `Map` behind
some variable, then you can do `myMap?api.put(key, value)` and such (i.e., use
the Java API of the object), after configuring FreeMarker to allow that (see
related FAQ entry).
> Adding to a hash (map)
> ----------------------
>
> Key: FREEMARKER-8
> URL: https://issues.apache.org/jira/browse/FREEMARKER-8
> Project: Apache Freemarker
> Issue Type: New Feature
> Components: engine
> Affects Versions: 2.3.23
> Reporter: Ondra Žižka
>
> It would be nice to assign to a map this way:
> {code}
> <#assign map["key"] = 1>
> {code}
> and also
> {code}
> <#assign map["key"]++>
> {code}
> So far I think it's like this but can't get it work:
> {code}
> <#assign map += {classification.classification :
> map[classification.classification]!++}>
> {code}
> Thanks for considering.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)