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]

Reply via email to