Thanks dusty. =)
On Thu, 2007-06-28 at 20:59 -0700, dusty wrote:
> You have a common interceptor problem when using relationships. The net net
> is that you need to modify your inteceptor stack so that near the top you
> have an order like
> ....
> params
> prepare
> params
>
> That is the first part of the solution. The second part is you need to
> implement Preparable on your action with the save() method. Finally you
> need to include:
> if(study != null){
> study = (Study)studyDao.getObject(Study.class,study.getId())
> //or something like that to load the study based on the id of the
> current study object.
> }
>
> What this does is load all of the values from the database for the object
> and then applies what ever values have been posted in your form to your
> object.
>
> What is happening is that your form only has values like study.name,
> study.description, etc for the textfields that you fill out there. When you
> post that to the server and your interceptors are just:
>
> prepare
> params
>
> or just
>
> params
>
> You are telling the server to create a new study object and then apply all
> the values from the posted form. There is no imageId field in the posted
> form so that field is left null, the default value for a new study object.
> The object gets saved and poof! your relationship is gone. A similar
> scenario is when you have a very long object and you want to just edit a
> subset of the fields for the object with a smaller form. If you don't load
> the previous values before applying the updated values from the posted form
> you will lose all the databse values. Another way to look at it is think
> what would happen if you did not have a hidden study.id field on your form?
>
> So:
> params -> apply the web parameters initially to get the id
> prepare -> use the id from above to load all the db values, including
> relationship ids
> params -> overwrite the db values with the updated values from the web
>
>
>
>
>
>
> vacant_eyes wrote:
> >
> > I forgot to say the version. I am using appfuse 1.9.4 and Wwbwork. This
> > is my save() method in StudyAction:
> >
> > public String save() throws Exception {
> > if (cancel != null) {
> > return "cancel";
> > }
> >
> > if (delete != null) {
> > return delete();
> > }
> >
> > boolean isNew = (study.getId() == null);
> >
> > Date now = new Date();
> > study.setModified(now);
> > studyManager.saveStudy(study);
> >
> > String key = (isNew) ? "study.added" : "study.updated";
> > saveMessage(getText(key));
> >
> > if (!isNew) {
> > return INPUT;
> > } else {
> > return SUCCESS;
> > }
> > }
> >
> >
> >
> > Thanks again
> >
> >
> > Adriel
> >
> > On Thu, 2007-06-28 at 12:35 +0100, Michael Horwitz wrote:
> >> Which version of Appfuse are you using and with which web framework?
> >>
> >> Thanks
> >>
> >> Mike.
> >>
> >>
> >> On 6/28/07, adriel manalansan <[EMAIL PROTECTED]> wrote:
> >> Hello to everyone,
> >>
> >> I have 2 pojos, study and image. I did the relationship
> >> between the 2
> >> tables and it is successful. Here it goes, from
> >> editStudy.html, i
> >> uploaded an image(redirected to editImage.html) that uses
> >> imageAction
> >> and saved the imageId to my study then redirect to
> >> editStudy.html again,
> >> the imageId is saved to study table so I can say that saving
> >> imageId to
> >> my study is successful. the problem is when I click the save
> >> button to
> >> my editStudy that calls the method save(), the imageId was
> >> deleted. I
> >> dont know where is the problem so please help me about this...
> >>
> >> Thanks and God bless you.
> >>
> >> Adriel
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail:
> >> [EMAIL PROTECTED]
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]