----- Original Message ----- 
From: "Craig R. McClanahan" <[EMAIL PROTECTED]>
To: "Struts Developers List" <[EMAIL PROTECTED]>
Sent: Wednesday, October 01, 2003 11:24 AM
Subject: Re: [struts-chain] Writing a command to process a Tiles Definition


>
> There's a "conditional behavior" use case in the existing code as well;
> when validation fails, we want to redisplay the input form.  Originally,
> I modelled this command as a Chain that conditionally executed its child
> commands, but that seemed a little hokey.  Now, this command definition
> says:
>
>     <command
className="org.apache.struts.chain.servlet.ValidateActionForm"
>       failureCommand="servlet-validation-failure"/>
>
> so I'm declaring the name of another chain to go execute if validation
> fails.  The actual code that does the conditional execution looks like
> this (in the abstract base class):
>
>     // Call the environment-specific protected validate() method in our
> implementation class
>     ActionErrors errors = validate(context, actionConfig, actionForm);
>
>     // If there were no errors, proceed normally
>     if ((errors == null) || (errors.isEmpty()) {
>         return (false); // Proceed with the main chain
>     }
>
>     // Execute the specified validation failure command
>     try {
>         Catalog catalog = (Catalog)
>           context.get(getCatalogKey());
>         Command command = catalog.getCommand(getFailureCommand());
>         command.execute(context);
>     } catch (Exception e) {
>         ... deal with exception ...
>     }
>     return (true); // Terminate the main chain
>
> This approach seems more scalable -- for example, you can have several
> different conditional options, you aren't binding all the behavior
> definitions into a single chain definition, and you can decide based on
> your needs whether to return false or true from the main command (which
> dictates whether the owning chain thinks processing is complete or not).
>
>
> Craig
>

I am wondering how I could implement a "jump behavior" in the main
chain. The use case for a "jump behavior" is that the main chain should
continue with several commands skipped over. For example, I would like
to jump to the last command in the main chain after the current command.
Any ideas?

Jing



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to