I think I'll resort to using the ResourceBundle as I can't override
getKeyMethodMap() and throw an IOException:
[javac]
D:\source\appfuse\src\web\org\apache\webapp\actions\BaseAction.java:107:
getKeyMethodMap() in org.apache.web
app.actions.BaseAction cannot override getKeyMethodMap() in
org.apache.struts.actions.LookupDispatchAction; overridden m
ethod does not throw java.io.IOException
[javac] protected Map getKeyMethodMap() throws IOException
[javac] ^
Thanks,
Matt
> -----Original Message-----
> From: Erik Hatcher [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, December 18, 2002 8:56 AM
> To: Struts Developers List
> Subject: Re: LookupDispatchAction - loading values from a
> properties file
>
>
> I'm not sure where your .properties file lives, but you
> should be able
> to do something similar to this:
>
> Properties props = new Properties();
> InputStream is = this.getClass().getClassLoader().getResourceAsStream
> ("my.properties");
> props.load(is);
> return props; // since its just a Map also
>
>
>
> Matt Raible wrote:
> > Pardon my ignorance, but your comment about Properties.load got me
> > interested. However, I can't seem to figure out how to shorten my
> > code (guess I haven't done much work with Properties
> files). I found
> > this
> > example:
> >
> > http://www.javaworld.com/javaworld/javatips/jw-javatip125.html
> >
> > But it seems to just increase the number of lines ;-)
> >
> > Matt
> >
> >
> >>-----Original Message-----
> >>From: Erik Hatcher [mailto:[EMAIL PROTECTED]]
> >>Sent: Wednesday, December 18, 2002 7:06 AM
> >>To: Struts Developers List
> >>Subject: Re: LookupDispatchAction - loading values from a
> >>properties file
> >>
> >>
> >>Matt,
> >>
> >>This looks reasonable. Generally speaking changing a button mapping
> >>would involve new code, so a recompile is necessary, but as
> >>you mention
> >>you are mapping multiple buttons to the same method.
> >>
> >>Although I'd caution against using LookupDispatchAction unless you
> >>really have forms that have multiple submit buttons to submit
> >>that same
> >>form data. If you're simply mapping multiple
> >>non-form-related actions
> >>into one class, then I'd argue this is not the right approach.
> >>
> >> Erik
> >>
> >>p.s. It looks like you might be able to save a few lines of code by
> >>using the Properties.load method instead of going through a
> >>ResourceBundle. ???
> >>
> >>Matt Raible wrote:
> >>
> >>>I was thinking of loading a properties file for my
> >>
> >>KeyMethodMap in a
> >>
> >>>subclass of LookupDispatchAction.
> >>>
> >>>So this:
> >>>
> >>> * Provides the mapping from resource key to method name
> >>> *
> >>> * @return Resource key / method name map
> >>> */
> >>> protected Map getKeyMethodMap()
> >>> {
> >>> Map map = new HashMap();
> >>>
> >>> map.put("button.add", "add");
> >>> map.put("button.cancel", "cancel");
> >>> map.put("button.copy", "copy");
> >>> map.put("button.save", "save");
> >>> map.put("button.edit", "edit");
> >>>
> >>> return map;
> >>> }
> >>>
> >>>Could be replaced with the following psuedo code:
> >>>
> >>> protected Map getKeyMethodMap()
> >>> {
> >>> Map map = new HashMap();
> >>> ResourceBundle methods =
> >>> ResourceBundle.getBundle("LookupMethods");
> >>>
> >>> Enumeration keys = methods.getKeys();
> >>>
> >>> while (keys.hasMoreElements()) {
> >>> String key = (String) keys.nextElement();
> >>> map.put(key, methods.getString(key));
> >>> }
> >>>
> >>> return map;
> >>> }
> >>>
> >>>
> >>>Is there any reason(s) why I shouldn't do this? I think it allows
> >>>greater flexibility for development - so I don't have to
> re-compile
> >>>this class everytime I want map a new method. My last
> >>
> >>project had 18
> >>
> >>>different mappings for the the different button names - where many
> >>>mapped to the same method.
> >>>
> >>>Thanks,
> >>>
> >>>Matt
> >>>
> >>
> >>
> >>--
> >>To unsubscribe, e-mail:
> >><mailto:struts-dev-> [EMAIL PROTECTED]>
> >>For
> >>additional commands,
> >>e-mail: <mailto:[EMAIL PROTECTED]>
> >>
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> <mailto:struts-dev-> [EMAIL PROTECTED]>
> > For
> additional commands,
> e-mail:
> > <mailto:[EMAIL PROTECTED]>
> >
> >
> >
>
>
> --
> To unsubscribe, e-mail:
> <mailto:struts-dev-> [EMAIL PROTECTED]>
> For
> additional commands,
> e-mail: <mailto:[EMAIL PROTECTED]>
>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>