freemarker-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel Dekany (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (FREEMARKER-87) <#list map as key,value> should always iterating on map entries
Date Fri, 19 Jan 2018 10:00:00 GMT

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

Daniel Dekany edited comment on FREEMARKER-87 at 1/19/18 9:59 AM:
------------------------------------------------------------------

Regarding {{#assign}} and the loop variables... it's not a bug, but questionable language
design (which can't be fixed until version 3, due to backward compatibility constraints).
{{#assign}} always sets a variable in the current namespace, similarly as {{#local}} always
sets a local variable and {{#global}} always sets a global variable. Loop variables are a
different scope that shadow all other scopes, that's why you don't see the effect, until you
exit the loop. There's no {{#loop}} directive to set loop variables. (Though I think it's
not a good practice to allow that.)


was (Author: ddekany):
Regarding {{#assign}} and the loop variables... it's not a bug, but questionable language
design (which can't be fixed until version 3, due to backward compatibility constraints).
{{#assign}} always sets a variable in the current namespace, similarly as {{#local}} always
sets a local and {{#global}} always sets a local. Loop variables are a different scope that
shadow all other scopes, that's why you don't see the effect, until you exit the loop. There's
no {{#loop}} directive to set loop variables. (Though I think it's not a good practice to
allow that.)

> <#list map as key,value> should always iterating on map entries
> ---------------------------------------------------------------
>
>                 Key: FREEMARKER-87
>                 URL: https://issues.apache.org/jira/browse/FREEMARKER-87
>             Project: Apache Freemarker
>          Issue Type: Bug
>          Components: engine
>    Affects Versions: 2.3.27-incubating
>            Reporter: Yanming Zhou
>            Priority: Major
>         Attachments: MapIteratingTest.java
>
>
> I'm using struts2, use FriendlyMapModel instead of default MapModel, It works fine except
map have key such as "size", the value will be unexpected SimpleMethodModel, I think freemarker
should always use entry value for directive <#list map as key,value>, not matter how MapModel
works, MapModel should only affect map.size and map.get('size').
> I attached a test case.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message