So far, we've had three suggestions about what to do about this:
1. Use named parameters instead of a single parameter (as just
mentioned)
2. Use parameter as the name of a property file or other resource where
the actual parameters are kept.
3. Add methods to ActionMappings to retrieve parameters as if parameter
were a query string.
So in the last case, you could set parameter to be something like
parameter="form=input+action=update"
and then retrieve it using methods like
String form = mapping.getParameter("form");
and still keep
String parameter = mapping.getParameter()
to retrieve the String as is (or maybe just the first parameter).
This has the virtue of being trival to implement, and jives with the way
Forwards have to be coded.
A quick and easy way to do this starting now, would be to use the
HttpUtils class
http://java.sun.com/j2ee/tutorial/api/javax/servlet/http/HttpUtils.html
and do something like
--
HashTable parameters =
HttpUtils.parseQueryString(mappings.getParameter());
String form = (String) parameters.get("form");
--
Anyone want to give a implementation of doing this within ActionMappings
a whirl? I'd be thinking we'd want all the same parameter methods from
ServletRequest
http://java.sun.com/j2ee/tutorial/api/javax/servlet/ServletRequest.html
Another idea would be to just implement getParameterMap() in
ActionMappings, since HttpUtils is deprecated in Servlet 2.3 ;-(, and
leave it at that.
-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/about/struts/
Ernest Jones wrote:
>
> I wanted some feedback on a feature request before I submit it.
>
> In the ActionMapping api you can only get one nameless config parameter
> (public String getParameter()). I would find it useful if I could specify
> any number of named parameters (public String getParameter(String key)).
> The xml in the struts-config file could look like:
>
> <action path="/myPath" type="com.mycompany.actions.DoSomething">
> <parameter name="paramName" value="paramValue"/>
> <parameter name="paramName2" value="paramValue2"/>
> ...
> <forward name="success" path="/success.jsp" />
> </action>
>
> To maintain backwards compatability (if you really wanted to) you could keep
> the old parameter attribute and function.
>
> Thoughts? Comments?