RE: actionmapping set-property problem in 1.1 upgradeHi, an alternative is the "parameter" - attribute of the "action" - element. But this way you can only pass one parameter (except you use a csv value and split this in your action manually).
Adding a custom digester rule (like for "data-source" and "plugin") in this class: http://cvs.apache.org/viewcvs.cgi/jakarta-struts/src/share/org/apache/struts/config/ConfigRuleSet.java?rev=1.15&content-type=text/vnd.viewcvs-markup plus adding a java.lang.Map class-attribute should solve the problem, but this would mean to recompile an own struts-binary. Better someone who has cvs-write access fix it to be sure it is in the next nightly build. greets Jan Zimmek ----- Original Message ----- From: Bill Milbratz To: 'Struts Users Mailing List' Sent: Friday, September 12, 2003 12:15 AM Subject: RE: actionmapping set-property problem in 1.1 upgrade I believe this is a bug in struts 1.1. Jan Zimmek posted a similar problem today. It seems that either the documentation or the code requires updating. The issue is that <set-property> no longer works for <action> as it did in 1.0.2. I upgraded to 1.1 from 1.0.2 today and first came across this problem. For example, this <action> element in struts-config.xml: <!-- Display Public Profile --> <action path="/profile/publicprofile" type="com.participate.pe.profile.client.actions.PublicProfileInit" name="publicProfileForm" scope="request" className="com.participate.util.client.struts.ApplicationActionMapping"> <set-property property="public" value="true"/> <forward name="continue" path="/profile/include/publicprofile.jsp" /> </action> yields this message and exception in the 1.1 log (includes Digester DEBUG): [2003-09-11 16:04:52,362] [DEBUG] org.apache.commons.digester.Digester (SetPropertyRule.java:174) - [SetPropertyRule]{struts-config/action-mappings/action/forward/set-property} Set org.apache.struts.action.ActionForward property public to true [2003-09-11 16:04:52,372] [ERROR] org.apache.commons.digester.Digester (Digester.java:1275) - Begin event threw exception java.lang.NoSuchMethodException: Bean has no property named public Based on the 'className' attribute in the <action> I would have expected to see: Set com.participate.util.client.struts.ApplicationActionMapping public to true The documenation in the 1.1 dtd suggests that action should work fine. Documentation on classname attribute on action from dtd: <!-- The "action" element describes an ActionMapping object that is to be used to process a request for a specific module-relative URI. The following attributes are defined: ..... className The fully qualified Java class name of the ActionMapping subclass to use for this action mapping object. Defaults to Documentation on set property <!-- The "set-property" element specifies the method name and initial value of an additional JavaBean configuration property. When the object representing the surrounding element is instantiated, the accessor for the indicated property is called and passed the indicated value. The "set-property" element is especially useful when a custom subclass is used with <data-source>, <forward>, <action>, or <plug-in> elements. The subclass can be passed whatever other properties may be required to configure the object without changing how the struts-config is parsed. property Name of the JavaBeans property whose setter method will be called. value String representation of the value to which this property will be set, after suitable type conversion --> any comments or workarounds? thanks, bill milbratz ------------------------------------------------------------------------------ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

