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]

Reply via email to