taglibs-user@jakarta.apache.org
[Top] [All Lists]

Re: <c:set> and runtime expressions

Subject: Re: <c:set> and runtime expressions
From: Kris Schneider
Date: Sun, 02 Apr 2006 22:25:42 -0400
If you need to run JSTL 1.0 and want to use JSP expressions as attribute values, you need to use the "RT-based" versions. For JSTL, there are basically two distinct versions of each taglib:

<%@ taglib prefix="c"    uri="http://java.sun.com/jstl/core"; %>
<%@ taglib prefix="c_rt" uri="http://java.sun.com/jstl/core_rt"; %>

If you look at the TLD files for JSTL 1.0, you'll see:

c.tld:
------
  <tag>
    <name>set</name>
...
    <attribute>
        <name>value</name>
        <required>false</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
...
  </tag>

c-rt.tld:
---------
 <tag>
    <name>set</name>
...
    <attribute>
        <name>value</name>
        <required>false</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
...
  </tag>

JSTL 1.0 has to handle EL evaluation on its own (it's integrated into JSP 2.0 so JSTL 1.1 doesn't need to do the evaluation), so you're forced to make a choice between different taglibs that use EL expressions or JSP expressions.

Tarek Nabil wrote:
Hi everyone,

I was using JSTL 1.1 in my application, and then unfortunately, I had to
downgrade to 1.0. Now, my IDE is complaining about this line in my JSP

    <c:set var="config" value="<%= Config.getInstance() %>"/>

It says "Attribute value does not accept runtime expressions.

This used to work perfectly when I was using 1.1. I tried to look at the
changes between 1.1 and 1.0 but I can not see anything related to this
issue. Is this really a difference between 1.0 and 1.1 or am I doing
something wrong?

Thanks in advance for your help.

--
Kris Schneider <mailto:kris@xxxxxxxxxx>
D.O.Tech       <http://www.dotech.com/>

---------------------------------------------------------------------
To unsubscribe, e-mail: taglibs-user-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: taglibs-user-help@xxxxxxxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>