My mailbox is Josh Josh Josh Josh Josh ... Josh ... Josh
Just Joking :) taha On Mon, Nov 8, 2010 at 6:27 PM, Taha Hafeez <[email protected]>wrote: > Use onActivate() onPassivate() in ViewContact Page. > As pages are pooled in tapestry, they don't remember what was in them > > You may also use @Persist on field contact in ShowAll page > > regards > Taha > > > > On Mon, Nov 8, 2010 at 6:22 PM, Josh Kamau <[email protected]> wrote: > >> I am trying to pass an object from one page (a page with a grid) to >> another >> page (the page with BeanDisplay). >> >> I know am making a silly mistake somewhere but i have spent 2 hours on it >> and i still cant figure out the issue. >> >> Here is the page with the grid >> >> <html t:type="layout" t:title="Show all contacts" >> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" >> xmlns:p="tapestry:parameter"> >> >> >> <div class="span-6"> >> <div t:type="menu"/> >> </div> >> >> <div class="span-16"> >> <table t:type="grid" t:source="contacts" t:row="contact" >> t:add="Actions"> >> <p:actionscell> >> <t:actionlink t:id="delete" t:context="contact.id >> ">delete</t:actionlink>| >> <t:actionlink t:id="view" t:context="contact.id >> ">view</t:actionlink> >> </p:actionscell> >> </table> >> </div> >> >> </html> >> >> public class ShowAll { >> >> @Inject >> private Dao dao ; >> >> @Property >> private Contact contact ; >> >> @InjectPage >> private ViewContact viewContact ; >> >> public List<Contact> getContacts(){ >> return dao.getAll(); >> } >> >> @OnEvent(value="action", component="delete") >> private void deleteContact(Long id){ >> dao.delete(id, Contact.class); >> } >> >> @OnEvent(value="action", component="view") >> private Object viewContact(Long id){ >> Contact contact = dao.getById(id, Contact.class); >> viewContact.setContact(contact); >> return viewContact ; >> } >> >> } >> >> >> The view page >> >> <html t:type="layout" t:title="Show all contacts" >> xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" >> xmlns:p="tapestry:parameter"> >> >> <div class="span-6"> >> <t:menu title="Viewing Contact"/> >> </div> >> >> <div class="span-16"> >> <t:beandisplay object="contact"/> >> </div> >> >> </html> >> >> package com.josh.addressbook.pages; >> >> import com.josh.addressbook.entities.Contact; >> >> public class ViewContact { >> >> >> private Contact contact ; >> >> public Contact getContact() { >> return contact; >> } >> >> public void setContact(Contact contact) { >> this.contact = contact; >> } >> >> >> } >> >> >> Error message >> >> An unexpected application exception has occurred. >> >> - org.apache.tapestry5.internal.services.RenderQueueException >> Render queue error in SetupRender[ViewContact:beandisplay]: Parameter >> 'object' of component ViewContact:beandisplay is bound to null. This >> parameter is not allowed to be null. >> activeComponents >> - ViewContact (class com.josh.addressbook.pages.ViewContact) >> - ViewContact:layout (class com.josh.addressbook.components.Layout) >> classpath:com/josh/addressbook/pages/ViewContact.tml, line 31<html >> t:type="layout" t:title="Show all contacts"2 xmlns:t=" >> http://tapestry.apache.org/schema/tapestry_5_1_0.xsd >> "3xmlns:p="tapestry:parameter"> >> 4 >> 5 <div class="span-6">6 <t:menu title="Viewing Contact"/>7 </div>8 >> - ViewContact:beandisplay (class >> org.apache.tapestry5.corelib.components.BeanDisplay) >> classpath:com/josh/addressbook/pages/ViewContact.tml, line 105 <div >> class="span-6">6 <t:menu title="Viewing Contact"/>7 </div>8 >> 9 <div class="span-16">10 <t:beandisplay object="contact"/>11 >> </div>12 >> 13</html> >> locationclasspath:com/josh/addressbook/pages/ViewContact.tml, line 10 >> - org.apache.tapestry5.ioc.internal.util.TapestryException >> Parameter 'object' of component ViewContact:beandisplay is bound to >> null. >> This parameter is not allowed to be null. >> locationclasspath:com/josh/addressbook/pages/ViewContact.tml, line >> 10Hide >> uninteresting stack frames Stack trace >> - >> org.apache.tapestry5.internal.transform.ParameterWorker$2$1.readFromBinding(ParameterWorker.java:328) >> >> - >> org.apache.tapestry5.internal.transform.ParameterWorker$2$1.get(ParameterWorker.java:413) >> >> - >> org.apache.tapestry5.corelib.components.BeanDisplay._$get_object(BeanDisplay.java) >> >> - >> org.apache.tapestry5.corelib.components.BeanDisplay.setupRender(BeanDisplay.java:128) >> >> - >> org.apache.tapestry5.corelib.components.BeanDisplay$MethodAccess_setupRender_12c2b7e6fa2.invoke(BeanDisplay$MethodAccess_setupRender_12c2b7e6fa2.java) >> >> - >> >> >> org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderP >> > >
