The following comment has been added to this issue:
Author: Nathan Egge
Created: Wed, 27 Apr 2005 6:58 PM
Body:
It turns out that my solution to this problem is too simple minded. For
example, if you had a member variable that was a Long, you could not just do:
protected Long id=new Long();
since a Long does not have a default constructor. What would be better, would
be to have member variable tags like @struts.form-variable and the line that
contains the variable would be copied over. I don't know how difficult that
would be to do, but it would allow you to then allow for default constructors
on only those member variables that need them (e.g., Lists, Maps, etc.)
In addition, it would allow you to preserve the notion of transient member
variables into the Form bean. This would be nice for use with utilities like
ToStringBuilder, HashCodeBuilder, etc.
Thoughts?
---------------------------------------------------------------------
View this comment:
http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1367?page=comments#action_16465
---------------------------------------------------------------------
View the issue:
http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1367
Here is an overview of the issue:
---------------------------------------------------------------------
Key: XDT-1367
Summary: Uninitialized "subform" objects from @struts.form
Type: Bug
Status: Open
Priority: Major
Original Estimate: Unknown
Time Spent: Unknown
Remaining: Unknown
Project: XDoclet
Components:
Apache Module
Versions:
1.2.3
Assignee: xdoclet-devel (Use for new issues)
Reporter: Nathan Egge
Created: Wed, 27 Apr 2005 3:33 PM
Updated: Wed, 27 Apr 2005 6:58 PM
Environment: Gentoo Linux x86/2005.0/2.4
[blackdown-jdk-1.4.2] "Blackdown JDK 1.4.2"
Description:
When generating Form objects from POJOs with the @struts.form
include-all="true", the Form object it creates leaves all the attributes
uninitialized. If my POJO contains another POJO, the resulting generated form
has a "subform" that is not initalized in the form.
If I have the following jsp code that renders a select based on the id of a
"subform" called type,
<html:select property="type.id">
<html:options collection="types" property="id" labelProperty="name"/>
</html:select>
when I submit this form I get the following exception:
java.lang.IllegalArgumentException: No bean specified
at
org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(PropertyUtils.java:837)
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:934)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:808)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:495)
at
org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:798)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:205)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
...
This is because the all of the non-primative types in the Form are left
uninitialized. The correct behaviour would be to create a new object for each
member variable.
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira
-------------------------------------------------------
SF.Net email is sponsored by: Tell us your software development plans!
Take this survey and enter to win a one-year sub to SourceForge.net
Plus IDC's 2005 look-ahead and a copy of this survey
Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix
_______________________________________________
xdoclet-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-devel