commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Steelman" <>
Subject RE: [Digester] How to assign from a property with aBeanPropertySetter?
Date Thu, 16 Jun 2005 15:09:38 GMT

Thanks, that's what was needed. I've bookmarked the source examples.


-----Original Message-----
From: Simon Kitching [] 
Sent: Thursday, June 16, 2005 1:20 AM
To: Jakarta Commons Users List
Subject: Re: [Digester] How to assign from a property with

Hi Jon,

On Thu, 2005-06-16 at 00:35 -0400, Jon Steelman wrote:
>     <response>
>         <cardid>1234567890</cardid>
>         <locationID>55555</locationID>
>         <cardAction action="activate"/>
>         <merchant><merchantID>4444</merchantID></merchant>
>     </response>
> </cardActionVendor>
> Here's the code:
> digester.addObjectCreate("cardActionVendor/response",
> ActivateResponse.class);
> digester.addBeanPropertySetter(PREFIX + "cardid",
> "primaryAccountNumber");
> digester.addBeanPropertySetter(PREFIX + "locationID");
> digester.addBeanPropertySetter(PREFIX + "/merchant/merchantID");
> The ActivateResponse class basically has these properties:
> primaryAccountNumber, locationID, merchantID, & action.
> I see how I can nest the merchant/merchantID to assign a property in
> class ActivateResponse. I have another direct property in
> ActivateResponse that is the value of cardAction's action, but I don't
> know how to assign it. The following won't work:
> digester.addBeanPropertySetter(PREFIX + "/cardAction/action");
> The ActivateRespone property is at the same level as the other
> properties, cardid & locationID, but how does one set it?

You can use CallMethodRule:
  digester.addCallMethod("response/cardAction", "setAction", 1);
  digester.addCallParam("response/cardAction", 0, "action");

As the xml attribute name "action" matches the name of the property to
be set, you could also use SetPropertiesRule:

While the latter is shorter, the former seems more appropriate as you
are specifically grabbing the "action" attribute rather than the set of
all attributes (which just happens to be a set of one).

Are you aware that there is a set of examples available with Digester?
I recommend downloading the src distribution and looking in
"src/examples/api"; alternatively browse the source:



To unsubscribe, e-mail:
For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message