Leszek Gawron pisze: > I may be biased but I would expect exactly the first case. I made a > mistake in previous mail proposing jx:if to be scoped. Please mind that > jx:set always puts a variable in current scope so you are not able to > change variable value: > > <jx:set var="foo" value="bar"/> > <jx:if test="true"> > <jx:set var="foo" value="bazzz"/> > </jx:if> > <test>${foo}</test> > </root> > > should result in <test>bazzz</test> otherwise people will get very > confused. A common user won't find the case much different from: > > <jx:set var="foo" value="bar"/> > <jx:set var="foo" value="bazzz"/> > <test>${foo}</test> > > which in turn works as expected. > > Long time ago we have already discussed about introducing jx:declare > along with jx:set. I cannot recall if any consensus was met.
I remember that I have read that discussion and I agree that there was no clear consensus. I also remember that there were several folks expressing their opinion that jx should as far from imperative programming language as possible. I second that opinion so I'm quite concerned with your example. It is a programming language. XSLT lives without such constructs so could you give us a use case for this one? Nevertheless, we need to fix scoping now so we really need to gather some consensus when new local context should be established. -- Grzegorz Kossakowski http://reflectingonthevicissitudes.wordpress.com/