[opencms-dev] EL and OpenCMS macros

Scott Shealy spshealy at graysail.com
Wed Nov 30 18:36:14 CET 2005


I am having a problem that I hope somebody can help with.  I currently
have a client who has a very large site that is developed and running on
6 alpha 3.  We are trying to migrate them to 6.03 / 6.02.  But I am
having a problem with their xml content pages and the interaction with
jsp2.0/jstl1.1 and the macroresolver in xmlcontent.

Basically I have a jsp that is trying to render xmlcontent and it has
the following fragment in it

<%@ page language="java" session="true"%>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
<%@ taglib prefix="gto" uri="/WEB-INF/customtaglib.tld" %>
<cms:contentload collector="singleFile" param="${opencms.uri}"

I am using 6.02 in tomcat 5.0.28 and I have changed the web.xml back to
the 2.4 spec so it I can use jsp2.0 and jstl 1.1.

The problem with the above fragment is that the jsp compiler interprets
the opencms macro 




as an el expression. When the page gets called I get a runtime error
that says the attribute param does not except expressions according to
the tld.  In alpha3 this was not a problem because the syntax was
opencms:uri(which bring up the interesting question of why the syntax
was changed to something that is exactly like el?  maybe I am missing
something here) which is not interpreted as el.  Obviously one solution
is to this is to turn off el for the page with a directive.. but later
in many of my pages I have el.  I also thought I could escape the el
like this:


but that is not working as expected.  While it does not get interpreted
as el the cms:contentload tag does not receive the value ${opencms.uri}.
After some debugging I determined that it is receiving the value
^[{opencms.uri}.. where ^[ is an unprintable ascii character.

Does anyone have any ideas what is going on here or have a workaround?

Scott Shealy

More information about the opencms-dev mailing list