SV: [opencms-dev] JSP2 issue escaping EL expressionsincms:contentload

Alexander Kandzior alex at opencms.org
Mon Sep 25 10:23:01 CEST 2006


I also agree the suggestions are good.

However, OpenCms currently is flagged as a 2.3 webapp:

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd">

IIRC most of these features are only available in a 2.4 webapp. It will
require some time to ensure that changing the OpenCms webapp version from
2.3 to 2.4 has no side effects.

Kind Regards,
Alex.

-------------------
Alexander Kandzior
                                                               
Alkacon Software GmbH  - The OpenCms Experts                  
http://www.alkacon.com - http://www.opencms.org                 

> -----Original Message-----
> From: opencms-dev-bounces at opencms.org 
> [mailto:opencms-dev-bounces at opencms.org] On Behalf Of 
> Sebastian Himberger
> Sent: Sunday, September 24, 2006 5:26 PM
> To: The OpenCms mailing list
> Subject: Re: SV: [opencms-dev] JSP2 issue escaping EL 
> expressionsincms:contentload
> 
> Hi,
> 
> i think Stefans suggestion this would be a good solution and 
> would make 
> binding of OpenCms values to custom tags much easier. Maybe it would 
> make sense to make the name somehow configurable (through a 
> property or 
> something). Even things like properties could be accessed through a 
> lazyly initialized Map. So you can use something like this:
> 
> <c:out value="${cms.currFile.properties['template']}"/>
> <c:out value="${cms.currFile.uri"/>
> 
> best regards
> Sebastian
> 
> Stefan Uldum Grinsted schrieb:
> >
> > Hi Alex
> >
> > Why not make use of the built-in EL instead? By making all the 
> > accessible macro-objects available in the pageContext, like 
> an opencms 
> > object with the name “opencms”, the current macroform can still be 
> > used. It will then use the EL, resolve to the opencms object in the 
> > page context and call getUri() from there.
> >
> > Or is there a particular reason rtexprvalue is disabled for most 
> > opencms tag attributes?
> >
> > / Stefan
> >
> > 
> --------------------------------------------------------------
> ----------
> >
> > *Fra:* opencms-dev-bounces at opencms.org 
> > [mailto:opencms-dev-bounces at opencms.org] *På vegne af 
> *Alexander Kandzior
> > *Sendt:* 20. september 2006 17:38
> > *Til:* 'The OpenCms mailing list'
> > *Emne:* RE: [opencms-dev] JSP2 issue escaping EL expressions 
> > incms:contentload
> >
> > Stefan,
> >
> > I do not have an immediate solution to the issue now, but 
> for future 
> > OpenCms releases there will be an alternative form of 
> OpenCms macros 
> > to avoid the confilct with the JSP EL.
> >
> > Currently, the idea is to allow the follwoing alternate 
> macro syntax:
> >
> > **%(VALUE)**
> >
> > as opposed to the current
> >
> > **${VALUE}**
> >
> > The old syntax will still work, so the new one will only be an 
> > alternative.
> >
> > I am open to suggenstions regarding the alternate macro 
> form. I want 
> > to make sure that we do not conflict with other macro languages.
> >
> > Kind Regards,
> > Alex.
> >
> > -------------------
> > Alexander Kandzior
> >
> > Alkacon Software GmbH - The OpenCms Experts
> > http://www.alkacon.com <http://www.alkacon.com/> - 
> > http://www.opencms.org <http://www.opencms.org/>
> >
> >     
> --------------------------------------------------------------
> ----------
> >
> >     *From:* opencms-dev-bounces at opencms.org
> >     [mailto:opencms-dev-bounces at opencms.org] *On Behalf Of *Stefan
> >     Uldum Grinsted
> >     *Sent:* Wednesday, September 20, 2006 2:26 PM
> >     *To:* 'The OpenCms mailing list'
> >     *Subject:* [opencms-dev] JSP2 issue escaping EL expressions in
> >     cms:contentload
> >
> >     Hi all
> >
> >     Last year, 30 November 2005 17:36, Scott Shealy asked the list
> >     about an issue with using the “${opencms.uri}” parameter for
> >     <cms:contentload /> in a JSP2 environment. And I have the same
> >     issue. Did anyone ever find a resolution for this?
> >
> >     The default way to escape the EL resolver is to use 
> \${
} and that
> >     work great in all other tag libs, even in my own. But 
> when I pass
> >     “\${opencms.uri} to the param attribute of cms:contentload, the
> >     generated java-code contains a strange character (char 27) in
> >     front of {opencms.uri} rather than the $. The char 27 
> is the ASCII
> >     escape character, but how does that end up there?
> >
> >     I know the directives of the jsp’s are treated by 
> opencms, before
> >     they are written to the rfs (where it still looks as expected),
> >     but does opencms do something during java-code generation of the
> >     jsp’s? - Because that’s where it seems to go wrong.
> >
> >     If I have the following two lines next to each other in a jsp:
> >
> >     <c:out value="\${opencms.uri}" />
> >
> >     <cms:contentload collector="singleFile" param="\${opencms.uri}"
> >     editable="true">
> >
> >     The java-generated code for the two lines looks like this:
> >
> >     // c:out
> >
> >     org.apache.taglibs.standard.tag.rt.core.OutTag 
> _jspx_th_c_out_0 =
> >     (org.apache.taglibs.standard.tag.rt.core.OutTag)
> >     
> _jspx_tagPool_c_out_value_nobody.get(org.apache.taglibs.standa
> rd.tag.rt.core.OutTag.class);
> >
> >     _jspx_th_c_out_0.setPageContext(_jspx_page_context);
> >
> >     _jspx_th_c_out_0.setParent(null);
> >
> >     _jspx_th_c_out_0.setValue(new String("${opencms.uri}"));
> >
> >     /* snip */
> >
> >     // cms:contentload
> >
> >     org.opencms.jsp.CmsJspTagContentLoad 
> _jspx_th_cms_contentload_0 =
> >     (org.opencms.jsp.CmsJspTagContentLoad)
> >     
> _jspx_tagPool_cms_contentload_param_editable_collector.get(org
> .opencms.jsp.CmsJspTagContentLoad.class);
> >
> >     _jspx_th_cms_contentload_0.setPageContext(_jspx_page_context);
> >
> >     
> _jspx_th_cms_contentload_0.setParent((javax.servlet.jsp.tagext.Tag)
> >     _jspx_th_c_catch_0);
> >
> >     _jspx_th_cms_contentload_0.setCollector("singleFile");
> >
> >     _jspx_th_cms_contentload_0.setParam("{opencms.uri}");
> >
> >     _jspx_th_cms_contentload_0.setEditable("true");
> >
> >     Here you see the strange non-readable ASCII escape char in front
> >     of the opencms.uri for cms:contentload but not for c:out, which
> >     really puzzles me.
> >
> >     Does anyone have any resolutions or suggestions? any 
> leads? Anything?
> >
> >     Thanx in advance.
> >
> >     / Stefan
> >
> > 
> --------------------------------------------------------------
> ----------
> >
> >
> > _______________________________________________
> > This mail is sent to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the 
> list, please visit
> > http://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> 
> _______________________________________________
> This mail is sent to you from the opencms-dev mailing list
> To change your list options, or to unsubscribe from the list, 
> please visit
> http://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> 




More information about the opencms-dev mailing list