You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by Anil Mandava <am...@altoweb.com> on 2001/12/12 23:55:24 UTC

(Beanutils) Mapped properties - creating beans on the fly - spec ifying class name in property ???

Hi,
Goal:
I am trying to create a 'generic' form bean for use with my Struts actions.
The form bean will make use of the Beanutils' good features such as mapped
properties and nested properties.

To achieve that, I am finding a need for Beanutils to dynamically create
beans for nested-mapped properties.
e.g., My generic form bean has one mapped property - "value" with getter as 
	"Object getValue(String key)".
In my struts/jsp form, I specify a field with property "value(xyz).abc",
when that form is sumbitted, it translates into following call:
<genericbean>.getValue("xyz").setAbc(...).

Problem is that getValue("xyz") returns null by default, Beanutils stops
there.

If it were possible to specify my bean class name, say
"value(xyz){MyXyzBean}.abc"
then perhaps Beanutils could
1) do <genericbean>.getValue("xyz")
2) if it returns null, check for class name in {} delimters
3)********* do Class.forName("MyXyzBean").newInstance()
4) put that back into <genericbean>.setValue("xyz", xyzbean)
5) xyzbean.setAbc(...)

I was wondering if anyone else has come across a need like that, or even
better has some code somewhere to do that.
If not, I will attempt doing it (and submit a patch).

If there is anything wrong in the whole approach of specifying a class name
as part of property, please let me know.

Thanks in advance,
Anil

-----Original Message-----
From: robert burrell donkin [mailto:robertdonkin@mac.com]
Sent: Wednesday, December 12, 2001 10:51 AM
To: Jakarta Commons Developers List
Cc: Velocity Developers List
Subject: Re: (Beanutils)[SUBMIT] MethodUtils


On Wednesday, December 12, 2001, at 08:18 AM, Christoph Reck wrote:

> robert burrell donkin wrote:
>> you'll probably wonder why the method is called invokeExactMethod (rather
>> than invokeMethod, say). that's because i plan to add another method that
>> searches for a correctly named method with compatible parameters (rather
>> than exact matching) but i though that it'd be better to submit the
>> patches required to fix Donnie's problem (and then add more functionality
>> later).
>
> Please check the Velocity method-finding introspection code, it probably
> does what you need, and could become part of the commons. Recently it
> was upgraded to find interface public methods on private classes...

hi Christoph

(beanutils already had some private code that did just that. the patch 
moved that code into a separate class, made it public and added some 
convenience wrappers.)

i have taken a quick look (at the velocity introspection code) and there 
are certainly a number of useful utility methods which might make good 
additions to beanutils. want to volunteer to mine velocity?

maybe it'd make some sense to try to consolidate - as far as possible - 
the general reflection code into beanutils. i know that gier supplied some 
of the code so maybe that was his original plan...

- robert


--
To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
For additional commands, e-mail:
<ma...@jakarta.apache.org>

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>