So I guess CF transfers all CF variables to either all uppercase or all
lowercase? Given that, surely case sensitivity wouldn't be an issue. You'd
just have to follow the same rule: write all your variables in a JSP
fragment as all uppercase (or lowercase).

----- Original Message -----
From: "Sean A Corfield" <[EMAIL PROTECTED]>
To: "CF-Talk" <[EMAIL PROTECTED]>
Sent: Saturday, February 22, 2003 3:11 PM
Subject: Re: Java scriptlets on CFMX


> On Friday, Feb 21, 2003, at 15:07 US/Pacific, Barney Boisvert wrote:
> > It seems it would be an amazingly trivial thing to incorporate,
> > assuming
> > that CF variables are accessible from the Java size of things in a
> > consistent (and documented) manner.  Haven't looked at the .java files
> > much,
> > so I don't know how they all work.  Perhaps Sean or Christian could
> > comment?
>
> The key point here is "assuming that CF variables are accessible from
> the Java size of things"... Java is case-sensitive, CFML is not. That
> alone introduces some interesting issues:
>
> <%
> x = 1;
> X = 2;
> %>
> <cfoutput>#x# #X#</cfoutput>
>
> In CFML, #x# and #X# refer to the same variable but in the JSP
> fragment, they refer to separate variables.
>
> There's also some scoping issues - CFML's scope model is very different
> to Java's. When you refer to #x# it could be in (pretty much) any scope
> in CFML. A variable reference in Java has a very different set of rules
> governing which 'scopes' are searched (and several of the CFML scopes
> don't exist in Java).
>
> This could be solved by providing appropriate proxy objects in Java
> through which you could access CFML variables, but you'd need some
> fairly ugly syntax in JSP to do things like assignment:
>
> <%
> CFMLassign("x",1);
> X = CFMLvalueOf("x");
> %>
>
> The first line would assign to a CFML variable as if you said:
> <cfset x = "1">
> The second line would assign to the Java variable 'X' (uppercase) the
> current value of CFML's 'x' (case insensitive).
>
> I hope you can see why this would soon become unpleasant.
>
> >>> <cfscript>
> >>>    missing = createObject("java", "java.util.ArrayList");
> >>>    missing.init(request.neededfilenames.clone());
> >>>    missing.removeAll(request.foundfilenames);
> >>>    createObject("java", "java.util.Collections").sort(missing);
> >>> </cfscript>
> >>>
> >>> Rather than something like this, which is far easier to read:
> >>>
> >>> <%
> >>>    missing = new
> >>> java.util.ArrayList(request.neededfilenames.clone());
> >>>    missing.removeAll(request.foundfilenames);
> >>>    java.util.Collections.sort(missing);
> >>> %>
>
> I'm not sure I'd agree with *far* easier to read but I do agree it is
> *slightly* easier to read. You can certainly mitigate the difference
> with a suitable UDF, e.g.,
>
> <cfscript>
> missing = jnew("java.util.ArrayList",request.neededfilenames.clone());
> missing.removeAll(request.foundfilenames);
> jnew("java.util.Collections").sort(missing);
> </cfscript>
>
> However, it wouldn't hurt to 'vote' for easier Java integration using
> the wish form on mm.com (the URL of which escapes me, since I'm on
> BART, but is posted here fairly regularly).
>
> Sean A Corfield -- Director, Architecture
> Web Technology Group -- Macromedia, Inc.
> tel: (415) 252-2287 -- cell: (415) 717-8473
> aim/iChat: seancorfield -- http://www.macromedia.com
> An Architect's View -- http://www.macromedia.com/go/arch_blog
>
> Announcing Macromedia DevNet Subscriptions
> Maximize your power with our new premium software subscription
> Find out more: http://www.macromedia.com/go/devnetsubs
>
>
>
> 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Archives: http://www.houseoffusion.com/cf_lists/index.cfm?forumid=4
Subscription: 
http://www.houseoffusion.com/cf_lists/index.cfm?method=subscribe&forumid=4
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Get the mailserver that powers this list at http://www.coolfusion.com

                                Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4
                                

Reply via email to