[ 
https://issues.apache.org/jira/browse/FREEMARKER-8?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14999160#comment-14999160
 ] 

Daniel Dekany edited comment on FREEMARKER-8 at 11/10/15 7:20 PM:
------------------------------------------------------------------

OK, part of my above answers was hasty...

There is {{++}} in FTL, but it can only be used 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, where the map is created inside the template, 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).


was (Author: ddekany):
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)

Reply via email to