I'm trying to create a simple form that will work for both Add and Edit. I'm trying to use onPrepare to setup the database object and the code works fine for an existing object. When I try to use the form with a new object (id = null) it appears that onPrepare isn't called, so I end up with null pointer exceptions trying to build the form.
Here is my simple controller: package com.starpoint.helpdesk.pages.office; import com.starpoint.helpdesk.business.OfficeLogic; import com.starpoint.helpdesk.domain.Office; import com.sun.istack.internal.Nullable; import org.apache.tapestry5.annotations.Log; import org.apache.tapestry5.annotations.Persist; import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.ioc.annotations.Inject; import org.slf4j.Logger; /** */ public class EditOffice { @Inject private Logger logger; @Inject private OfficeLogic officeLogic; @Persist private Integer officeId; @Property private Office office; public Integer getOfficeId() { return officeId; } @Log public void setOfficeId(@Nullable Integer officeId) { this.officeId = officeId; } @Log void onPrepare(Integer officeId) { if (office == null) { office = officeId == null ? new Office() : officeLogic.getOffice(officeId); } } void onActivate(Integer officeId) { this.officeId = officeId; } Integer onPassivate() { return officeId; } public Object onSuccess() { logger.info("**************: " + office.toString()); return this; } } And my form: <html t:type="layout" title="helpdesk Index" t:sidebarTitle="Current Time" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter"> <t:form t:id="editOfficeForm" t:context="officeId"> <t:errors/> <table> <tr> <td><t:label for="officeName">Office Name</t:label></td> <td><t:textfield t:id="officeName" value="prop:office.officeName"></t:textfield></td> </tr> <tr> <td colspan="2"> <t:submit t:id="saveOffice" class="button">Save Office</t:submit> </td> </tr> </table> </t:form> </html> What am I missing? --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org