Re: Forwarding Actions onto other Actions

2001-09-16 Thread Ted Husted

Unfortunately, I don't think there is a way for us to tell whether the
request is being forwarded or not ;-(

Though, I suppose there could a flag or something, I suppose. But,
AFAIK, the developer would still have to set that.

What would be helpful would be for someone who is dealing with this
problem to make a concrete proposal.

Nathan Coast wrote:
> 
> Hi,
> 
> I think Bob's point is that if an action form has been populated once during
> a request, it would be useful if the reset wasn't called again.  i.e. if the
> request was forwarded to other actions which use an action form of the same
> name, it'd be useful if form properties could be set during the first action
> and not reset before arriving at the second action.  I've coded around this
> by setting request attributes in the first action and reading them in the
> second (ugly).
> 
> I don't think anyone disagrees that it's essential the action forms are
> reset between requests.
> 
> Cheers
> Nathan
> 
> -Original Message-
> From: Ted Husted [mailto:archive@jab.org]
> Sent: Sunday, September 16, 2001 1:14 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Forwarding Actions onto other Actions
> 
> Unfortunately, calling reset is necessary. A primary reason is that that
> if a checkbox is unchecked then it will be ommitted from the request.
> This can give inconsistent results when a ActionForm is being returned
> for editing. The reset method gives the developer the opportunity to set
> the checkbox to a known state (to make up for the vagrancies of  HTML).
> 
> The abstract implementation of reset is empty. If a developer is going
> to reuse beans between requests, it is the developer's responsiblity to
> see that reset performs correctly.
> 
> All the population also takes places through mutators that the developer
> defines. If there are circumstances where a ActionForm should not
> populate itself through the request, the developer can design the
> mutators accordingly.
> 
> -- Ted Husted, Husted dot Com, Fairport NY USA.
> -- Custom Software ~ Technical Services.
> -- Tel +1 716 737-3463
> -- http://www.husted.com/about/struts/
> 
> Bob Rullo wrote:
> >
> > Ted,
> >
> > I did see that check in the processActionForm method, but if you notice,
> in
> > the processPopulate which is called right after the processActionForm call
> > you'll see that the bean, no matter where it came from, gets reset and
> then
> > populated with the request parameters via the RequestUtil.populate method.
> >
> > Am I missing something here?  Sure seems like it'll reset the form bean no
> > matter what which to me, isn't desirable.
> >
> > -Bob
> >
> > - Original Message -
> > From: "Ted Husted" 
> > To: <[EMAIL PROTECTED]>
> > Sent: Sunday, September 16, 2001 6:04 AM
> > Subject: Re: Forwarding Actions onto other Actions
> >
> > > There is actually just such a check, though this would be a very good
> > > suggestion if there weren't ;-)
> > >
> > > See processActionForm in ActionServlet.
> > >
> > > Please let us know if you see anything else.
> > >
> > > -- Ted Husted, Husted dot Com, Fairport NY USA.
> > > -- Custom Software ~ Technical Services.
> > > -- Tel +1 716 737-3463
> > > -- http://www.husted.com/about/struts/
> > >
> > >
> > > Bob Rullo wrote:
> > > >
> > > > This is my first posting to the dev board so bare with me.
> > > >
> > > > >From what I've seen in looking in the ActionServlet code it appears
> > that
> > > > everytime a action is called the form instance for that action is
> placed
> > > > into the mapping.getScope( ).  Shouldn't there be a check before to
> see
> > if
> > > > the ActionForm is already in the scope?  Reason being that one action
> > could
> > > > make some modifications to a form instance and then forward it to
> > another
> > > > action that will make more changes to the form instance.  Basically my
> > > > problem is that if two actions having the same form instance are
> called
> > in
> > > > the same request the form instance stored in the request will always
> be
> > > > overridden by the last action.
> > > >
> > > > I propose that we should do a check before each action to determine if
> > the
> > > > form already exists in the desired scope.  If so, use the scoped
> > instance,
> > > > if not, build the form instance off of the request parameters as it is
> > now.
> > > >
> > > > If this was by design, could someone shed some light to why?
> > > >
> > > > Thank you for your help,
> > > > -Bob
> 
> **
> This email and any files transmitted with it are confidential and
> intended solely for the use of the individual or entity to whom they
> are addressed. If you have received this email in error please notify
> the system manager.
> 
> This footnote also confirms that this email message has been swept by
> MIMEsweeper at LevelSeas for the presence of computer viruses.
> 
> www.mimesweeper.com
> **



RE: Forwarding Actions onto other Actions

2001-09-16 Thread Nathan Coast

Hi, 

I think Bob's point is that if an action form has been populated once during
a request, it would be useful if the reset wasn't called again.  i.e. if the
request was forwarded to other actions which use an action form of the same
name, it'd be useful if form properties could be set during the first action
and not reset before arriving at the second action.  I've coded around this
by setting request attributes in the first action and reading them in the
second (ugly).

I don't think anyone disagrees that it's essential the action forms are
reset between requests.

Cheers
Nathan

-Original Message-
From: Ted Husted [mailto:archive@jab.org]
Sent: Sunday, September 16, 2001 1:14 PM
To: [EMAIL PROTECTED]
Subject: Re: Forwarding Actions onto other Actions


Unfortunately, calling reset is necessary. A primary reason is that that
if a checkbox is unchecked then it will be ommitted from the request.
This can give inconsistent results when a ActionForm is being returned
for editing. The reset method gives the developer the opportunity to set
the checkbox to a known state (to make up for the vagrancies of  HTML). 

The abstract implementation of reset is empty. If a developer is going
to reuse beans between requests, it is the developer's responsiblity to
see that reset performs correctly.

All the population also takes places through mutators that the developer
defines. If there are circumstances where a ActionForm should not
populate itself through the request, the developer can design the
mutators accordingly.

-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/about/struts/


Bob Rullo wrote:
> 
> Ted,
> 
> I did see that check in the processActionForm method, but if you notice,
in
> the processPopulate which is called right after the processActionForm call
> you'll see that the bean, no matter where it came from, gets reset and
then
> populated with the request parameters via the RequestUtil.populate method.
> 
> Am I missing something here?  Sure seems like it'll reset the form bean no
> matter what which to me, isn't desirable.
> 
> -Bob
> 
> - Original Message -
> From: "Ted Husted" 
> To: <[EMAIL PROTECTED]>
> Sent: Sunday, September 16, 2001 6:04 AM
> Subject: Re: Forwarding Actions onto other Actions
> 
> > There is actually just such a check, though this would be a very good
> > suggestion if there weren't ;-)
> >
> > See processActionForm in ActionServlet.
> >
> > Please let us know if you see anything else.
> >
> > -- Ted Husted, Husted dot Com, Fairport NY USA.
> > -- Custom Software ~ Technical Services.
> > -- Tel +1 716 737-3463
> > -- http://www.husted.com/about/struts/
> >
> >
> > Bob Rullo wrote:
> > >
> > > This is my first posting to the dev board so bare with me.
> > >
> > > >From what I've seen in looking in the ActionServlet code it appears
> that
> > > everytime a action is called the form instance for that action is
placed
> > > into the mapping.getScope( ).  Shouldn't there be a check before to
see
> if
> > > the ActionForm is already in the scope?  Reason being that one action
> could
> > > make some modifications to a form instance and then forward it to
> another
> > > action that will make more changes to the form instance.  Basically my
> > > problem is that if two actions having the same form instance are
called
> in
> > > the same request the form instance stored in the request will always
be
> > > overridden by the last action.
> > >
> > > I propose that we should do a check before each action to determine if
> the
> > > form already exists in the desired scope.  If so, use the scoped
> instance,
> > > if not, build the form instance off of the request parameters as it is
> now.
> > >
> > > If this was by design, could someone shed some light to why?
> > >
> > > Thank you for your help,
> > > -Bob


**
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper at LevelSeas for the presence of computer viruses.

www.mimesweeper.com
**



Re: Forwarding Actions onto other Actions

2001-09-16 Thread Ted Husted

Unfortunately, calling reset is necessary. A primary reason is that that
if a checkbox is unchecked then it will be ommitted from the request.
This can give inconsistent results when a ActionForm is being returned
for editing. The reset method gives the developer the opportunity to set
the checkbox to a known state (to make up for the vagrancies of  HTML). 

The abstract implementation of reset is empty. If a developer is going
to reuse beans between requests, it is the developer's responsiblity to
see that reset performs correctly.

All the population also takes places through mutators that the developer
defines. If there are circumstances where a ActionForm should not
populate itself through the request, the developer can design the
mutators accordingly.

-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/about/struts/


Bob Rullo wrote:
> 
> Ted,
> 
> I did see that check in the processActionForm method, but if you notice, in
> the processPopulate which is called right after the processActionForm call
> you'll see that the bean, no matter where it came from, gets reset and then
> populated with the request parameters via the RequestUtil.populate method.
> 
> Am I missing something here?  Sure seems like it'll reset the form bean no
> matter what which to me, isn't desirable.
> 
> -Bob
> 
> - Original Message -
> From: "Ted Husted" 
> To: <[EMAIL PROTECTED]>
> Sent: Sunday, September 16, 2001 6:04 AM
> Subject: Re: Forwarding Actions onto other Actions
> 
> > There is actually just such a check, though this would be a very good
> > suggestion if there weren't ;-)
> >
> > See processActionForm in ActionServlet.
> >
> > Please let us know if you see anything else.
> >
> > -- Ted Husted, Husted dot Com, Fairport NY USA.
> > -- Custom Software ~ Technical Services.
> > -- Tel +1 716 737-3463
> > -- http://www.husted.com/about/struts/
> >
> >
> > Bob Rullo wrote:
> > >
> > > This is my first posting to the dev board so bare with me.
> > >
> > > >From what I've seen in looking in the ActionServlet code it appears
> that
> > > everytime a action is called the form instance for that action is placed
> > > into the mapping.getScope( ).  Shouldn't there be a check before to see
> if
> > > the ActionForm is already in the scope?  Reason being that one action
> could
> > > make some modifications to a form instance and then forward it to
> another
> > > action that will make more changes to the form instance.  Basically my
> > > problem is that if two actions having the same form instance are called
> in
> > > the same request the form instance stored in the request will always be
> > > overridden by the last action.
> > >
> > > I propose that we should do a check before each action to determine if
> the
> > > form already exists in the desired scope.  If so, use the scoped
> instance,
> > > if not, build the form instance off of the request parameters as it is
> now.
> > >
> > > If this was by design, could someone shed some light to why?
> > >
> > > Thank you for your help,
> > > -Bob



Re: Forwarding Actions onto other Actions

2001-09-16 Thread Bob Rullo

Ted,

I did see that check in the processActionForm method, but if you notice, in
the processPopulate which is called right after the processActionForm call
you'll see that the bean, no matter where it came from, gets reset and then
populated with the request parameters via the RequestUtil.populate method.

Am I missing something here?  Sure seems like it'll reset the form bean no
matter what which to me, isn't desirable.

-Bob

- Original Message -
From: "Ted Husted" 
To: <[EMAIL PROTECTED]>
Sent: Sunday, September 16, 2001 6:04 AM
Subject: Re: Forwarding Actions onto other Actions


> There is actually just such a check, though this would be a very good
> suggestion if there weren't ;-)
>
> See processActionForm in ActionServlet.
>
> Please let us know if you see anything else.
>
> -- Ted Husted, Husted dot Com, Fairport NY USA.
> -- Custom Software ~ Technical Services.
> -- Tel +1 716 737-3463
> -- http://www.husted.com/about/struts/
>
>
> Bob Rullo wrote:
> >
> > This is my first posting to the dev board so bare with me.
> >
> > >From what I've seen in looking in the ActionServlet code it appears
that
> > everytime a action is called the form instance for that action is placed
> > into the mapping.getScope( ).  Shouldn't there be a check before to see
if
> > the ActionForm is already in the scope?  Reason being that one action
could
> > make some modifications to a form instance and then forward it to
another
> > action that will make more changes to the form instance.  Basically my
> > problem is that if two actions having the same form instance are called
in
> > the same request the form instance stored in the request will always be
> > overridden by the last action.
> >
> > I propose that we should do a check before each action to determine if
the
> > form already exists in the desired scope.  If so, use the scoped
instance,
> > if not, build the form instance off of the request parameters as it is
now.
> >
> > If this was by design, could someone shed some light to why?
> >
> > Thank you for your help,
> > -Bob




Re: Forwarding Actions onto other Actions

2001-09-16 Thread Ted Husted

There is actually just such a check, though this would be a very good
suggestion if there weren't ;-)

See processActionForm in ActionServlet.

Please let us know if you see anything else. 

-- Ted Husted, Husted dot Com, Fairport NY USA.
-- Custom Software ~ Technical Services.
-- Tel +1 716 737-3463
-- http://www.husted.com/about/struts/


Bob Rullo wrote:
> 
> This is my first posting to the dev board so bare with me.
> 
> >From what I've seen in looking in the ActionServlet code it appears that
> everytime a action is called the form instance for that action is placed
> into the mapping.getScope( ).  Shouldn't there be a check before to see if
> the ActionForm is already in the scope?  Reason being that one action could
> make some modifications to a form instance and then forward it to another
> action that will make more changes to the form instance.  Basically my
> problem is that if two actions having the same form instance are called in
> the same request the form instance stored in the request will always be
> overridden by the last action.
> 
> I propose that we should do a check before each action to determine if the
> form already exists in the desired scope.  If so, use the scoped instance,
> if not, build the form instance off of the request parameters as it is now.
> 
> If this was by design, could someone shed some light to why?
> 
> Thank you for your help,
> -Bob