[ 
https://issues.apache.org/jira/browse/VELOCITY-773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12903444#action_12903444
 ] 

Nathan Bubna commented on VELOCITY-773:
---------------------------------------

You're right, $foreach is always on, as it (and its special properties) are 
heavily used.

> Provide locally scoped #set variables
> -------------------------------------
>
>                 Key: VELOCITY-773
>                 URL: https://issues.apache.org/jira/browse/VELOCITY-773
>             Project: Velocity
>          Issue Type: Improvement
>          Components: Engine
>    Affects Versions: 1.7-beta1
>            Reporter: Michael Osipov
>
> Consider this snippet:
> <!-- Generated pushbutton groups -->
> #foreach ($group in $form.pushbuttonGroups)
> <div class="die-button-group" style="#coordinates($group)">
> #*    *##foreach ($groupChild in $group.children)
> #*            *##if (!$velocityHasNext)#set($turnPaddingOff = 
> 'style="padding-bottom: 0px;"')#end
> #*            *##if ($groupChild.class.simpleName == "Pushbutton")
>       #*      *#<div $!turnPaddingOff>
>               #*      *#<button type="submit" name="$groupChild.name" 
> value="$groupChild.value" 
> onclick="loadSubsequent()">#label($groupChild.label)</button>
>                               
>       #*      *#</div>
> #*            *##end
> #*    *##end
> </div>
> #end
> There is an inherent bug. After the first run of the outer foreach, the var 
> turnPaddingOff is still available and will always set in the div tag. There 
> is only one workaround. At the end of the outer foreach you have to set it to 
> ''.
> #set should be available as a locally scoped thing in #foreach or other 
> constructs.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to