Hi,
I am new to Struts technology, so forgive me if I not see
something obvious here.
Based on e-Commerece example from Wrox book, I have created
form to maintain organization, which suppose to behave like SQL Form. So I have
browsing keys, Update, Insert, Delete and other keys. Right now I have no access
to database, so I used Struts database utility and store collection of records.
Everything is working fine, I can see and navigate between
records, I can update or delete them.
The problem starts when I try to simulate retrieving of not
all records but records based on some criteria entered in the form. In Action
servlet I wrote:
OrganizationForm orgForm =
(OrganizationForm)form;
Organization orgFromForm = orgForm.getOrganization(); ...... HashMap orgTable =
(HashMap) servletContext.getAttribute(Constants.ORGANIZATION_TABLE_KEY); if(orgTable == null)
{
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("error.orgTable.missing")); } else { int size = orgTable.size(); orgForm.setTotal(size);
if(size > 0) { int i = 1; Iterator iterator = orgTable.values().iterator(); Organization[] orgArray = new Organization[size+1]; Organization anOrg = null; while(iterator.hasNext()) { anOrg = (Organization)iterator.next(); if( "Query".equals(mode) && "Retrieve".equals(action)) { if( orgForm.matches(anOrg)) orgArray[i++] = anOrg; } else { orgArray[i++] = anOrg; } } So, for every record from otgArray, I want to compare city of
address of organization with
city field from the form.
In OrganizationForm.java I create method:
public boolean matches( Organization org
)
{ System.out.println("FORM=" + this.organization
);
System.out.println("COLL=" + org ); if ( this.organization != null &&
this.organization.getAddress() != null &&
this.organization.getAddress().getCity() != null )
{
String cityFromForm = this.organization.getAddress().getCity(); if ( org != null && org.getAddress() != null && org.getAddress().getCity() != null ) { String cityFromCollection = org.getAddress().getCity(); System.out.println("COMPARE " + cityFromCollection + " WITH " + cityFromForm ); if( cityFromCollection.equals( cityFromForm )) return true; else return false; } return false; }
return true; // no selection provided } If I call this method I have error:
javax.servlet.ServletException: Null property value for
'organization'
at
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:459)
...
Root cause:
java.lang.IllegalArgumentException: Null property value for 'organization' at org.apache.struts.util.PropertyUtils.getNestedProperty(PropertyUtils.java:347)
|
- Re: Nested property error - resolved Jerzy Kalat
- Re: Nested property error - resolved Jerzy Kalat