Ah good - glad it's sorted.

BTW, as a matter of interest - I tend to use DynaActionForm as a nested bean
in a DynaActionForm. This allows the properties of the Dyna to be defined in
struts-config (may not suit you of course, just thought I'd mention it in
case it's of use):

        // Get reference to DynaActionForm passed to action
        DynaActionForm dynaForm = (DynaActionForm) form;

        // Get dafc - to create DynaActionForms
        ModuleConfig mconfig = mapping.getModuleConfig();
        FormBeanConfig fbconfig =
mconfig.findFormBeanConfig("Sub-DynaActionForm-name-defined-in-struts-config
");
        DynaActionFormClass dafc =
DynaActionFormClass.createDynaActionFormClass(fbconfig);
        DynaActionForm mySubForm = (DynaActionForm) dafc.newInstance();

        ...
        // Populate Dyna etc.
        ...

        // Nest Dyna in main form bean
        form.set("subform",mySubForm);

BTW - glad to see it's sunny in Cambridge today!

Hue.


> -----Original Message-----
> From: Kevin A. Palfreyman [mailto:[EMAIL PROTECTED]
> Sent: 27 August 2003 13:37
> To: Struts Users Mailing List
> Subject: RE: Problem converting from Struts tags to JSTL
>
>
> Hi Hue - thanks for your efforts.
>
> I actually just managed to get it working as your mail arrived.
>
> Here is what I had to do:
> 1) Change the JSP to be
>       <c:out value="${instanceForm.dynamic.map[fieldName]}" />
>    (actually just like you suggested)
>
> 2) This is the interesting bit - I had to subclass BasicDynaBean
>    to expose a getMap() method.  This is what DynaActionForm
>    does, and was discussed on the commons-dev list in Nov2002
>    by Craig, David, and co.
>
>    I then had to pass that new class as the 2nd param of the
>    constructor of BasicDynaClass that creates the instance for me.
>
> Thanks again,
>
>       Kev
>
>
>
> > -----Original Message-----
> > From: Hue Holleran [mailto:[EMAIL PROTECTED]
> > Sent: 27 August 2003 13:20
> > To: Struts Users Mailing List
> > Subject: RE: Problem converting from Struts tags to JSTL
> >
> >
> > Hi Kev,
> >
> > Sorry - I missed the fieldName being dynamic bit(!). I think
> > you may want to consider moving to JSTL for the loop bit so
> > it will save having to do conversions but I think the
> > following will achieve what you're trying to do:
> >
> >   <bean:define id="fieldNameBean" value="<%=fieldName%>" />
> >   <c:out value="${instanceForm.dynamic.map[fieldNameBean]}"
> > default="uh?" />
> >
> > BTW you could remove the default="uh?" bit - I use this for
> > testing so that I can at least see the loop working.
> >
> > I don't tend to mix EL with non-EL so this may not be the
> > optimum solution - someone else may have a better idea - as I
> > guess the performance will be slower and heavier due to
> > having to copy a value to a bean in page scope.
> >
> > Hue.
> >
> > > -----Original Message-----
> > > From: Kevin A. Palfreyman [mailto:[EMAIL PROTECTED]
> > > Sent: 27 August 2003 11:32
> > > To: Struts Users Mailing List
> > > Subject: RE: Problem converting from Struts tags to JSTL
> > >
> > >
> > > Thanks for the pointer to the user guide, but unfortunately
> > it doesn't
> > > help.
> > >
> > > I tried:
> > >
> > > <c:out value="${instanceForm.dynamic.map.<%=fieldName%>}" />
> > >
> > > And
> > >
> > > <c:out value='<%="${instanceForm.dynamic.map."+fieldName+"}"%>' />
> > >
> > > And
> > >
> > > <c:out value="${instanceForm.dynamic.map.${fieldName}}" />
> > >
> > > But those didn't work either.
> > >
> > > I think the problem is with the nested evaluation - combining the
> > > scriptlet and the EL.
> > >
> > > Any other ideas?
> > >
> > >   Kev
> > >
> > > > -----Original Message-----
> > > > From: Hue Holleran [mailto:[EMAIL PROTECTED]
> > > > Sent: 27 August 2003 10:21
> > > > To: Struts Users Mailing List
> > > > Subject: RE: Problem converting from Struts tags to JSTL
> > > >
> > > >
> > > > Try the User Guide:
> > > >
> > > >
> > > > http://jakarta.apache.org/struts/userGuide/building_controller
> > > > .html#dyna_act
> > > > ion_form_classes
> > > >
> > > > > -----Original Message-----
> > > > > From: Kevin A. Palfreyman [mailto:[EMAIL PROTECTED]
> > > > > Sent: 27 August 2003 10:05
> > > > > To: [EMAIL PROTECTED]
> > > > > Subject: Problem converting from Struts tags to JSTL
> > > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > I'm trying to convert some pages from Struts tags to JSTL
> > > > for the next
> > > > > iteration of our product and I've hit a problem. [Struts
> > > > 1.1, Tomcat
> > > > > 4.1.24, Java 1.4.2, JSTL 1.0.3]
> > > > >
> > > > > I need to be able to dynamically access nested fields
> > of my form
> > > > > object.
> > > > >
> > > > > The Form object (instanceForm) contains a DynaBean
> > > > (dynamic) as one of
> > > > > its fields.  The fields of the DynaBean are what I'm trying
> > > > to access.
> > > > > The name of the particular field within the DynaBean is
> > stored in
> > > > > a local variable (fieldName) that is been populated in a loop.
> > > > >
> > > > > The following Struts tag works fine:
> > > > >
> > > > > <bean:write name="instanceForm" property='<%=
> > "dynamic."+fieldName
> > > > > %>'/>
> > > > >
> > > > > I'm new to JSTL, and I've tried various forms similar to
> > > > those below
> > > > > without success.  Is what I'm trying to do possible?
> > > > >
> > > > > <c:out value='<%= "${instanceForm.dynamic."+fieldName %>}'
> > > > /> <c:out
> > > > > value="${instanceForm.dynamic.<%=fieldName%>}" /> <c:out
> > > > > value="${instanceForm.dynamic.${fieldName}}" />
> > > > >
> > > > > Anyone have any ideas?  Or should I stick with the
> > Struts tags for
> > > > > this?
> > > > >
> > > > > Thanks in advance,
> > > > >
> > > > >       Kev
> > > > >
> > > > >
> > > > > ---
> > > > > Dr. Kevin Palfreyman
> > > > > Apama (UK) Ltd,
> > > > > Cambridge, UK
> > > > >
> > > > >
> > > > > ---
> > > > > Incoming mail is certified Virus Free.
> > > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > > Version: 6.0.512 / Virus Database: 309 - Release Date:
> > 19/08/2003
> > > > >
> > > > ---
> > > > Outgoing mail is certified Virus Free.
> > > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > > Version: 6.0.512 / Virus Database: 309 - Release Date: 19/08/2003
> > > >
> > > >
> > > >
> > --------------------------------------------------------------------
> > > > -
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > > ---
> > > Incoming mail is certified Virus Free.
> > > Checked by AVG anti-virus system (http://www.grisoft.com).
> > > Version: 6.0.512 / Virus Database: 309 - Release Date: 19/08/2003
> > >
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.512 / Virus Database: 309 - Release Date: 19/08/2003
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.512 / Virus Database: 309 - Release Date: 19/08/2003
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.512 / Virus Database: 309 - Release Date: 19/08/2003


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to