You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@velocity.apache.org by Christopher Schultz <ch...@christopherschultz.net> on 2017/01/31 00:38:14 UTC

[Tools] Possible to check StrutsLinkTool for an existing "forward"

All,

I've been using StrutsLinkTool with Struts 1.x for a very long time, and
I'm surprised this is the first time this has come up.

I'd like to check for the existence of a forward definition and, if it
exists, use it. Otherwise, I'd like to fall-back to a default.
Basically, I'm taking a Velocity template that is used in a bunch of
places to do one thing, and make it so that I can post a form to a
different (new) action in certain cases.

Normally, I'd do something like this:

#if($link.forward('maybe-exists'))
  <form action="$link.forward('maybe-exists')">
#else
  <form action="$link.forward('same-old-action')">
#end

Unfortunately, the $link.forward('maybe-exists'} will throw an error in
the cases that "maybe-exists" doesn't actually exist. Hence, my desire
to check for the existence of the forward declaration.

Is anything like that possible with the current 2.0 tools build? Can
anyone suggest an alternative without tossing something into the
Velocity context to act as a flag?

Thanks,
-chris


Re: [Tools] Possible to check StrutsLinkTool for an existing "forward"

Posted by Mike Kienenberger <mk...@gmail.com>.
I'd do it by subclassing StrutsLinkTool and adding a custom method
that calls setForward() and returns true or false based on whether
there was an exception thrown.

You could also create a unique tool if you didn't want to subclass
StrutsLinkTool, but subclassing StrutsLinkTool is how I handled custom
struts link tool behavior.  Just redefine "link" to point to your
subclass in the toolbox.xml file.




On Mon, Jan 30, 2017 at 7:38 PM, Christopher Schultz
<ch...@christopherschultz.net> wrote:
> All,
>
> I've been using StrutsLinkTool with Struts 1.x for a very long time, and
> I'm surprised this is the first time this has come up.
>
> I'd like to check for the existence of a forward definition and, if it
> exists, use it. Otherwise, I'd like to fall-back to a default.
> Basically, I'm taking a Velocity template that is used in a bunch of
> places to do one thing, and make it so that I can post a form to a
> different (new) action in certain cases.
>
> Normally, I'd do something like this:
>
> #if($link.forward('maybe-exists'))
>   <form action="$link.forward('maybe-exists')">
> #else
>   <form action="$link.forward('same-old-action')">
> #end
>
> Unfortunately, the $link.forward('maybe-exists'} will throw an error in
> the cases that "maybe-exists" doesn't actually exist. Hence, my desire
> to check for the existence of the forward declaration.
>
> Is anything like that possible with the current 2.0 tools build? Can
> anyone suggest an alternative without tossing something into the
> Velocity context to act as a flag?
>
> Thanks,
> -chris
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org