"Jay Glanville" <[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
> It's funny that you say that it will not work, because it does for me,
> and without throwing any exceptions.

What version of Struts are you using? It's not supposed to work, at least
with the latest code, so I'd like to find out whether we have a bug, or
you're using a version prior to the forwards being frozen.

--
Martin Cooper


>
> That being said, your point about modifying an action mappings forwards
> is a good one.  It is unfortunate that the ActionForward class doesn't
> have a copy constructor ....
>
> --
> Jay Glanville
>
>
> > -----Original Message-----
> > From: news [mailto:[EMAIL PROTECTED] On Behalf Of Martin Cooper
> > Sent: Monday, March 15, 2004 8:30 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: What is the best way to pass a parameter to a forward?
> >
> >
> > What you are doing will not work - at least, not the way you
> > are doing it.
> > You are trying to modify the ActionForward instance that is
> > owned by Struts,
> > and calling setPath() on that instance will result in an
> > IllegalStateException.
> >
> > You need to create your own ActionForward instance, instead
> > of trying to
> > modify Struts' one. You can do that with something like this:
> >
> >     ActionForward goto = mapping.findForward( "success" );
> >     String path = ...; // Put together your new path
> >     ActionForward myGoto = new ActionForward(path,
> > goto.getRedirect());
> >     return myGoto;
> >
> > --
> > Martin Cooper
> >
> >
> > "Glanville, Jay" <[EMAIL PROTECTED]> wrote
> > in message
> > news:[EMAIL PROTECTED]
> > I'm trying to solve a problem, but I'm not sure my solution
> > is the best
> > way.  Basically, I want to set a parameter on a forward within the
> > action's execute.
> >
> > I'm in my action's execute method.  I've just successfully performed
> > some work, and I now want to forward/redirect to the next page.  So,
> > I've got some code that looks like this:
> >
> >    public ActionForward execute(ActionMapping.....) {
> >       // do some work
> >       ActionForward goto = mapping.findForward( "success" );
> >       return goto;
> >    }
> >
> > With an action mapping that looks like this:
> >
> >    <action
> >       path="/EntrySave"
> >       type="com.package.EntrySaveAction"
> >       name="EntryForm"
> >       validate="true"
> >       input="/Entry.do">
> >       <forward name="success" redirect="true" path="/Container.do"/>
> >       <forward name="failure" redirect="false" path="/Entry.do" />
> >    </action>
> >
> > Basically, if I left the EntrySaveAction.execute do what's doing right
> > now, then upon successful completion, it would redirect to
> > "/Container.do".  However, what I want it to do is redirect to
> > "/Container.do?id=45", where 45 is the id of the container that I want
> > to go to.  The value of "45" is dynamic, and is know at the
> > time of the
> > EntrySaveAction.execute command.
> >
> > The way I'm currently doing it is something like this:
> >
> >    public ActionForward execute(ActionMapping.....) {
> >       // do some work
> >       ActionForward goto = mapping.findForward( "success" );
> >       String path = goto.getPath();
> >       path += "?id=" + container.getId();
> >       goto.setPath( path );
> >       return goto;
> >    }
> >
> > Is this the correct way to do this?  Is there a better way?
> >
> > Thanks in advance
> >
> > JDG
> >
> >
> > --
> > Jay Glanville
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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]

Reply via email to