Hi all,
I am a relatively new struts user, so if the question I'm asking has been
answered before, I appologize ahead of time.
What I'm trying to do, is create a framework integrated with struts that,
among other things, allows users to set up multiple forwards dependent on
the broswer type. This could be Netscape, IE, WAP browser, or others.
What I would like to do is something like the following in the
struts-config.xml file:
...
<action name="test">
...
<forward name="success" browser="IE" path="/ie/test.jsp"/>
<forward name="success" browser="NS" path="/ns/test.jsp"/>
<forward name="success" browser="WAP" path="/wap/test.jsp"/>
...
</action>
...
The reasoning behind this, would be to create an additional attribute that
could be used by my framework internals that determines the browser and
calls the correct JSP for the user automatically.
Something like:
...
return myMapping.findForward("success");
...
Which calls into a wrapper class that I create and determines the browser,
then calling the appropriate JSP as defined in the config file. This makes
it very simple for the user, as he only needs to define a series of
'success's, and the Action code is simple as defined above.
Now, obviously, adding an additional attribute to the forward above is not
trivial. So my question, is has anyone seen anything like this, and is
there a way I haven't thought of to do this within the current struts
framework?
One thought I've had would be to do the following:
<forward name="ie_success" path="/ie/test.jsp"/>
<forward name="ns_success" path="/ns/test.jsp"/>
<forward name="wap_success" path="/wap/test.jsp"/>
This would work and not require many changes to the framework, but I would
rather not do this, as it would make things very difficult for my users to
create their own actions.
Another possibility is the following:
<forward name="success" path="test.jsp" />
<browserforward name="success" browser="ie" path="/ie/test.jsp" />
<browserforward name="success" browser="ns" path="/ns/test.jsp" />
<browserforward name="success" broswer="wap" path="/wap/test.jsp" />
In this case, I would need to create another XML entry that kept all of the
'success' forwards for each action in its own little HashTable, much like
the normal forwards, except keyed by a combination of the name and the
browser attributes.
I honestly don't know how difficult this would be, but it seems like the
best solution I've come up with so far. One obvious drawback to this one is
that the struts DTD would need to be altered to include the 'browserforward'
element. I am not sure of the implications of this.
Any thoughts?
Thanks for your time.
Hans Bure
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com