lol!  not what i was expecting, but very interesting!  :)  

before i use this suggestion, would anyone else like to challenge this
solution with a *more elegant* solution?  ;)

and without making getters and setters!!

woodchuck


--- Rick Reumann <[EMAIL PROTECTED]> wrote:

> Woodchuck wrote:
> 
> > how can i do the following the non-scriptlet way on my jsp page?
> > 
> > <%@ page import="MyPackage.Constants"%>
> > 
> > <%= Constants.BUTTON__KEY %>
> > 
> > 
> > is there an elegant Struts or JSTL equivalent for the above?
> 
> Thankfully Kris Schneider demonstrated a good way to handle this...
> 
> In your Constants class add a method similar to this:
> 
> public static Map getConstantsMap() {
>      Map propMap = null;
>      try {
>          Field[] allFields = Constants.class.getDeclaredFields();
>          int numFields = allFields.length;
>          propMap = new HashMap(numFields);
>          for(int i = 0; i < numFields; i++) {
>              Field f = allFields[i];
>              int mods = f.getModifiers();
>              if(Modifier.isPublic(mods) && Modifier.isStatic(mods) &&
> 
> Modifier.isFinal(mods)) {
>                  String name = f.getName();
>                  Object value = f.get(null);
>                  propMap.put(name, value);
>              }
>          }
>      } catch(IllegalAccessException ie) {
>          log.error("Problem loading getConstantsMap " + ie);
>      }
> 
>      return Collections.unmodifiableMap(propMap);
> }
> 
> 
> Then, I have a Servlet that runs on applications startup (such as a 
> ServletContextListener) that will load the constants map into 
> application scope:
> 
> ServletContext context = contextEvent.getServletContext();
> try {...
>     context.setAttribute("CONSTANTS", Constants.getConstantsMap());
> 
> Now anywhere in your JSPs you can just use the Map
> 
> ${CONSTANTS.SOME_CONSTANT}
> 
> 
> -- 
> Rick
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 



                
_______________________________
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to