There's also a library that implements this feature (and accessing methods,
among other things) in JSF 1.2: http://el-functors.sourceforge.net/.

In the EG, we were never really keen on the idea of calling methods via the
EL, but I think constants makes a lot of sense. And, given the fact that
people are always adding support for method calls, perhaps that should be
there as well.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kito D. Mann ([EMAIL PROTECTED])
Author, JavaServer Faces in Action
http://www.virtua.com - JSF/Java EE consulting, training, and mentoring
http://www.JSFCentral.com - JavaServer Faces FAQ, news, and info


> -----Original Message-----
> From: David Delbecq [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, September 28, 2006 12:58 PM
> To: [email protected]
> Subject: Re: How to reference a static value in JSF
> 
> You can simply create a bean implementing the Map interface. 
> Then, in the get(Object key) use introspection to locate the 
> class referenced and extract the given public field.
> eg, get("some.package.Class.THE_FIELD") will do a return 
> Class.forName("some.package.Class").someMethodAmTooLazyTooLook
> ForInApi("THE_FIELD");
> 
> This should take no more than a few lines of code to create 
> such bean and you can even make it read/write :)
> 
> Reference this bean as an application bean, with a name like 
> 'StaticAccessor' and use this in your JSF:
> <h:inputHidden id="a"
> value="#{StaticAccessor['com.jsportal.projectportal.web.webAct
> ions.login']}"/>
> 
> Note: use #{} and not ${} in JSF!!
> JS Portal Support a écrit :
> > Hi,
> >
> > Just started to implement Shale and JSF. As I've always worked more 
> > with scriptlets and Servlets I can't seem to figure out how to 
> > reference a public static value from one of my classes in 
> my JSP's. I've always used:
> >
> > <input type="hidden" name="a"
> > value="<%=com.jsportal.projectportal.web.webActions.login%>"/>
> >
> > Now I try to achieve this with the following:
> >
> > <h:inputHidden id="a"
> > value="${com.jsportal.projectportal.web.webActions.login}"/>
> >
> > I understand this doesn't work as it will try to call 
> > com.getJsportal()....etc. But how do I do it, as the <%=%> is not 
> > allowed in these taglib tags?
> >
> > Thanks,
> > Joost
> >
> >   
> 

Reply via email to