I would reccomend using Howard's spring stuff
http://howardlewisship.com/tapestry-javaforge/tapestry-spring/ .
On 3/28/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]>
wrote:
>
> Kevin,
>
> I think this is a bug, I had the same problem.
>
> What is happening is that when the page is being enhanced (subclass
> created)
> the reference to the injected object (a spring object in your case) is
> passed
> through the constructor. Now since the page is pooled, the next time a
> request
> is made the requested is serviced with this cached page along with the
> original
> (stale) injected object.
>
> I had to modify InjectObjectWorker class so that the reference is not
> passed
> through the constructor but rather as a getter object that looks up
> spring's
> application context every time. Take a look at this class's inject object
> method.
>
> Regards,
> Amir
>
> --- Kevin Fightmaster <[EMAIL PROTECTED]> wrote:
>
> > Problem:
> > When I submit a form which persists a new object to the database and
> I
> > return back to the form to create a new object but the old object values
> are
> > still there. I'm using @InjectObject in my code and I'm not sure how to
> tell
> > the class to reset the value.
> >
> > Artifacts:
> > [PAGE CLASS]
> > public abstract class AddPerson extends PersonPersistenceAbstract {
> > ...
> > @InjectObject("spring:Person")
> > public abstract Person getPerson();
> > ...
> > public void detach() {
> > if (log.isDebugEnabled())
> > log.debug("Page Detaching");
> > super.detach();
> > }
> > }
> >
> > [PAGE SPECIFICATION]
> > <!DOCTYPE page-specification PUBLIC
> > "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
> > "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> > <page-specification class="
> > org.fightmaster.person.presentation.page.AddPerson">
> > <inject property="listPerson" type="page" object="ListPerson"/>
> > <component id="personForm" type="Form">
> > <binding name="listener" value="listener:onSubmit"/>
> > </component>
> > <component id="firstname" type="TextField">
> > <binding name="value" value="ognl:person.firstname"/>
> > </component>
> > <component id="middlename" type="TextField">
> > <binding name="value" value="ognl:person.middlename"/>
> > </component>
> > <component id="lastname" type="TextField">
> > <binding name="value" value="ognl:person.lastname"/>
> > </component>
> > </page-specification>
> >
> > [SPRING BEAN XML]
> > <?xml version="1.0" encoding="UTF-8"?>
> > <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
> > "http://www.springframework.org/dtd/spring-beans.dtd">
> > <beans>
> > <bean id="Person.Hibernate.Annotation.SessionFactory" class="
> >
> org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
> ">
> > <property name="configurationClass" value="
> > org.hibernate.cfg.AnnotationConfiguration"/>
> > <property name="configLocation" value="classpath:hibernate.cfg.xml
> "/>
> > </bean>
> > ...
> > <bean id="Person" class="
> > org.fightmaster.person.business.hibernate.PersonImpl" singleton="false">
> > ...
> > </bean>
> > ...
> > </beans>
> >
> > Specs:
> > Tapestry 4
> > Hibernate 3
> > Spring 1.1
> > Java 1.5
> > Tomcat 5.5
> >
> > Summary:
> > The setup works as far as persistence goes. My objects are persisted to
> the
> > database. My issue has to do with session and why I can't get my Person
> > object to reset for the next request. Thanks for any guidance.
> >
> >
> > Kevin
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
Jesse Kuhnert
Tacos/Tapestry, team member/developer
Open source based consulting work centered around
dojo/tapestry/tacos/hivemind. http://opennotion.com