You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Ahearn, Denis" <DE...@firepond.com> on 2002/11/20 22:33:31 UTC

Problem using nested property names with DynaActionForm - Should Struts support this?

Hi,

I am trying to use a nested property with a DynaActionForm, as shown below:

	<form-bean name="personForm" dynamic="true"
type=type="org.apache.struts.action.DynaActionForm">
                <form-property name="address.zipCode"
type="java.lang.String"/>
	</form-bean>

In my JSP file, I use the html:text tag to bind the form property to an HTML
text element:

	<html:text property="address.zipCode" maxlength="5"/>

When I access this JSP page, I get the following error:

javax.servlet.ServletException: No getter method for property
address.zipCode of bean org.apache.struts.taglib.html.BEAN
    	at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImp
l.java:494)
	at
org.apache.jsp.SG_0002dcensus_form_jsp._jspService(SG_0002dcensus_form_jsp.j
ava:389)
	at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
04)
	at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:289)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

>From what I can tell, when Struts creates an instance of DynaActionForm for
this form definition, it creates a property on the form named
"address.zipCode".  However, the html:text tag treats the propertyName as a
nested property, and expects the bean supplied to it (the form) to contain a
property named "address" which in turn has a property named "zipCode".
Since the form doesn't have an "address" property, the exception results.

Apparently Struts does not support nested property names with the
<form-property> tag.  Would the Struts developers consider enhancing
DynaActionForm and DynaActionFormClass to support this usage?  I believe all
it would take is enhancing those two classes to create the necessary object
hierarchy for nested properties, using DynaBeans for the child objects.

Thanks,
Denis