hi Mark,

I tried the 2nd way that you had suggested here are the details (I am not
sure I did everything alright) but it isnt working, it throws
"Method get() not implemented" error.

I have a class MyConstBean implementing Map with the following method.

  public Map get(String constName) throws Exception{
    HashMap map = new HashMap();
    Class constClass = Class.forName(constName);
    java.lang.reflect.Field[] flds = constClass.getDeclaredFields();
    for(int i = 0; i<flds.length; i++){
      map.put(flds[i].getName(), flds[i].get(null));
    }
    return map;
  }

Now in the jsp, I have the following lined, just to alert the constant
value.

        <%request.setAttribute("constantsBean", new
com.somePackage.MyConstBean());%>
        alert('<c:out
value="${constantsBean.SomeConstantsInterface.SOME_CONST}" />');

this is not working ......

The first option requires a lot of changes in some other's module, so not
thinking about it now.
I do not understand the last option. Can you give me an example for the
function & its call....

Regards,
Arun Karthik R

-----Original Message-----
From: Mark Roth [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 12, 2004 9:29 PM
To: [EMAIL PROTECTED]
Subject: Re: Const in JSTL


Hi Arun,

There is no direct way to access constants in the EL.  Here are a few
alternatives:

1. Create a Map in the application scope and put all the constants in
there.  (e.g. ${myConstantsMap.SOME_CONST})

2. Create a bean that implements java.util.Map and have it look up
constants (e.g. ${constantsBean.MyConstants.SOME_CONST} would call
constantsBean.get( "MyConstants" ).  This would return a Map containing
key/value pairs for the costants in MyConstants).  This is not hard to
write and could be done using introspection.

3. Create a function that looks up the constants (e.g. ${fn:constants(
"MyConstants.SOME_CONST" )} ).  Again, The function would use introspection.

We're looking into making this easier in a future version of the JSP
specification.

Hope this helps.

---
Mark Roth, Java Software
JSP 2.0 Co-Specification Lead
Sun Microsystems, Inc.


Karthik Arun wrote:
> hi All
>
> How can I use a Const (final static) member of a class MyConstants in
JSTL??
> I would like to do something like this:
>
> <c:if test="${state == MyConstants.SOME_CONST}" >
>   <c:set value="${stateCode + '<br><b>' + singleObjToProcess.stateStr +
> '</b><br>'}" var="stateCode" />
> </c:if>
>
> where SOME_CONST is a const in MyConstants class.state is a loop iterating
> variable, stateCode is some member variable of singleObjToProcess object
> that is in the page scope.
>
> Can somebody let me know how I can use the constant in the JSTL..????
>
> Regards,
> Arun Karthik R
>
>
>
>
===========================================================================
> To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
JSP-INTEREST".
> For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
DIGEST".
>
> Some relevant archives, FAQs and Forums on JSPs can be found at:
>
>  http://java.sun.com/products/jsp
>  http://archives.java.sun.com/jsp-interest.html
>  http://forums.java.sun.com
>  http://www.jspinsider.com

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff
JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST
DIGEST".

Some relevant archives, FAQs and Forums on JSPs can be found at:

 http://java.sun.com/products/jsp
 http://archives.java.sun.com/jsp-interest.html
 http://forums.java.sun.com
 http://www.jspinsider.com

===========================================================================
To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST".
For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST".

Some relevant archives, FAQs and Forums on JSPs can be found at:

 http://java.sun.com/products/jsp
 http://archives.java.sun.com/jsp-interest.html
 http://forums.java.sun.com
 http://www.jspinsider.com

Reply via email to