Also, You shouldn't be using coldspring for transient objects, theres a
tonne of overhead involved. I wont go into detail but if you google it you
find loads of talk about why its not a good idea.

You should refactor you're instance factory to just create the beans using
createobject() each time one is requested, it'll be loads faster.

On 13 October 2010 18:16, Chris Blackwell <[email protected]> wrote:

> You're using makeEventBean to populate your form beans, and both Event and
> Course have a primary key property called "ID".  When the success result
> from Step.One is fired, Step.Two is run, but all the previous values are
> preserved in the request.
>
> In order to make it work in the way you want you'll need to tell ModelGlue
> not to preserve those values (you've already saved them to the db anyway)
>
> try..
> <result name="success" do="Step.Two" redirect="true" preservestate="fase"
> />
>
> FWIW, I pass my primary keys in fields that have a name unique to the
> object, so EventID or CourseID.  I do this even if the entity's primary key
> column is "ID", this avoids any ambiguity.  Then i'll tell controller
> methods what the PK variable name is using a message-argument, with a fall
> back to a default, eg.
>
> function getSomething(any event) {
>   var pk = event.getValue(event.getArgument("pk_var", "SomethingID"));
>   var something = beans.SomethingService.get(pk);
>   event.setValue("Something", something);
> }
>
>
> Cheers,Chris
>
>
>
>
> On 13 October 2010 16:50, Clifford Moon <[email protected]> wrote:
>
>> Greetings,
>>
>> I have an application that I'm working on with several tables.  I'm
>> using Coldspring to handle all the beans.
>>
>> I have two tables (Events and Courses).  Each has a bean setup with
>> the init, setters and getters in them respectively.  I'm working on a
>> form that first requires you to setup an event, and once the event
>> data is input and submitted, it moves to the next page which then
>> allows you to add courses to the events.
>>
>> My model glue file is as follows:
>> <event-handler name="Step.One" type="templatedPage">
>>    <broadcasts>
>>         <message name="GetEventForm" />
>>   </broadcasts>
>>      <views>
>>
>>      <include name="primary" template="forms/frm_stepone.cfm">
>>                 <value name="xe_receiveformat" value="handleStepOne" /
>> >
>>      </include>
>>   </views>
>> </event-handler>
>>
>> <event-handler name="handleStepOne" type="templatedPage">
>>    <broadcasts>
>>         <message name= "EventFormSubmitted" />
>>    </broadcasts>
>>
>>   <results>
>>        <result name="success" do="Step.Two" />
>>        <result name="failure" do="EventAdmin.Edit" />
>>   </results>
>> </event-handler>
>>
>> <event-handler name="Step.Two" type="templatedPage">
>>    <broadcasts>
>>          <message name= "GetGenericCourseForm" />
>>    </broadcasts>
>>
>>    <views>
>>        <include name="primary" template="forms/frm_steptwo.cfm">
>>            <value name="xe_receiveformat"
>> value="handleEventAdminForm" />
>>        </include>
>>     </views>
>> </event-handler>
>>
>> The Controller parts are:
>>
>> <cffunction name="EventFormSubmitted"  access="public"
>> returnType="void" output="false" hint="???">
>>   <cfargument name="event" type="any">
>>   <cfset var EventsBean =
>> getModelGlue().getBean("instanceFactory").getBean("EventsBean") /
>> >
>>    <cfset var EventsService =
>> getModelGlue().getBean( "EventsService") />
>>    <cfset var EventsList = EventsService.getEventsList() />
>>   <cfset var ErrorStruct = structNew() />
>>   <cfset var isValid = false />
>>   <cfset arguments.event.makeEventBean( EventsBean ) />
>>   <cfset isValid = EventsBean.validate (ErrorStruct) />
>>
>>   <cfif isValid >
>>        <cfset EventsService.saveEvent( EventsBean ) />
>>        <cfset arguments.event.addResult("Success") />
>>   <cfelse>
>>      <cfset arguments.event.setValue("ErrorStruct", ErrorStruct) />
>>     <cfset arguments.event.addResult("Failure") />
>>   </cfif>
>> </cffunction>
>>
>> <cffunction name="GetGenericCourseForm" access="public"
>> returnType="void" output="false" hint="???">
>>    <cfargument name="event" type="any">
>>    <cfset var CoursesBean = "" />
>>    <cfset var CoursesBean =
>> getModelGlue().getBean("instanceFactory").getBean("CoursesBean") />
>>    <cfset arguments.event.makeEventBean( CoursesBean ) />
>>    <cfset arguments.event.setValue( "CoursesBean", CoursesBean ) />
>> </cffunction>
>>
>> My Problem is in between forms/frm_stepone.cfm and forms/
>> frm_stepTwo.cfm (Step.One and Step.Two events respectively), I write
>> what was in the EVENTS  bean to the EVENTS table, and then create a
>> bean for COURSES.
>>
>> In my form (frm_stepTwo.cfm), here is the first part of the form:
>>
>> <cfset event.copyToScope(variables,"xe_receiveformat") />
>> <cfset myself = viewstate.getValue("myself") />
>> <cfset CoursesBean = viewstate.getValue("CoursesBean") />
>> <cfset ErrorStruct = viewstate.getValue("ErrorStruct", structNew()) />
>> <cfset submit = event.linkTo(xe_receiveformat) />
>>
>>
>>
>> <cfoutput>
>> <cfform name="CoursesForm" id="CoursesForm" action="#submit#">
>>   <input type="hidden" name="id" value="#CoursesBean.getID()#">
>>   <input type="hidden" name="create_date" value="#now()#">
>>
>>
>> When i Go to get the value of CoursesBean.getID and assume it to be
>> zero (as I havent created a record or anything yet there), I'm getting
>> the value of what was in the EventsBean.getID().
>>
>> Why is CoursesBean.getID picking up the value of EventsBean.getID().
>>
>> I have them both defined in my coldspring.xml as follows:
>>
>> <bean id="EventsBean" class="aa.EventManagement.model.EventsBean"
>> singleton="false" />
>> <bean id="CoursesBean" class="aa.EventManagement.model.CoursesBean"
>> singleton="false" />
>>
>> Any help is greatly appreciated.
>>
>> Thanks in Advance,
>>
>> Cliff
>>
>> --
>> Model-Glue Sites:
>> Home Page: http://www.model-glue.com
>> Documentation: http://docs.model-glue.com
>> Bug Tracker: http://bugs.model-glue.com
>> Blog: http://www.model-glue.com/blog
>>
>> You received this message because you are subscribed to the Google
>> Groups "model-glue" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]<model-glue%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/model-glue?hl=en
>>
>
>

-- 
Model-Glue Sites:
Home Page: http://www.model-glue.com
Documentation: http://docs.model-glue.com
Bug Tracker: http://bugs.model-glue.com
Blog: http://www.model-glue.com/blog

You received this message because you are subscribed to the Google
Groups "model-glue" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/model-glue?hl=en

Reply via email to