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:[EMAIL PROTECTED]] 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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>