OK I went with the following workaround. I create a form bean to handle
the name of the "global" forward:
public class ForwardForm extends ActionForm {
private String name;
public ForwardForm() { }
public String getName() { return this.name; }
public void setName( String name ) { this.name = name; }
public void reset( ActionMapping mapping, HttpServletRequest request )
{ this.name = ""; }
}
Then an Action that simply passes the name to findForward:
public class ForwardAction extends Action {
public ActionForward execute( ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response ) throws
Exception { return mapping.findForward( ( (ForwardForm)form ).getName() ); }
Then my form-bean and action definitions for the above two classes in
struts-config.xml:
<form-bean name="forwardForm" type="org.whatever.ForwardForm" />
...
<action path="/forward" type="org.whatever.ForwardAction"
name="forwardForm" scope="request" validate="false">
<!-- The "real" forward targets appear here at first -->
<forward name="main" path="page.main" redirect="true" />
</action>
Then to make it so I can actually use global forwards now (the idea
being the global forwards actually forward to an action which CAN handle
tiles definitions), I define my global forwards like so:
<forward name="main" path="/forward.do?name=main" />
(instead of just putting path="page.main", which doesn't work)
So it ends up being an extra step of redirection, but I don't care.
Once it's all set up, aside from having to define two forwards (two XML
tags; no big deal), I can always collapse the definitions if tiles
support is added to global forwards in the future.
Hope this helps somebody :).
- Scott
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]