Hello,
First : I am a French developper, so I apologize for my poor English !
Our society decided to use STRUTS because of it�s MVC approach !
Our applications have to be accessed by differents customers devices.
Each customer device supports different languages ( html, vdxml, WML,
etc...)
What�s on ?
STRUTS having not intrisinc customer device notion, we are thinking about
two ways
for making STRUTS have a customer device notion.
========
Method 1 :
========
Upgrading ourself STRUTS to implement a device detection ( This info could
be retrieved in
the fisrt customer header request ).
This approach would mean that all the specific device code ( Views,
Forms,... ) should be selected
automaticly by forwards functions, and generally by all the STRUTS functions
expecting
a parameter like path=�example.jsp� or any page indication parameter
input=�MyForm� in the case of an input action).
Example :
The first application page is �index.jsp�
In struts-config.xml we define this action :
<!-- Display the "welcome" page -->
<action path="/welcome"
forward="/welcome.jsp">
</action>
There is no �welcome.jsp� but two pages named respectivly �welcome_A.jsp�
and contains html code,
and �welcome_B.jsp� which contains WML code.
A Customer Device accept html ( Netscape browser )
B Customer Device accept wml ( WAP )
The �index.jsp� which is the common page could detect customer device and
sets the Device Value to A or B.
�index.jsp� contains a link wich page=�welcome.do�
So we start !
When the customer selects the link �welcome.do�, STRUTS action called
forward could return �welcome_A.jsp�,
assuming current device is A.
We are here speaking of suffixed pages with A and B. We could use the same
pages names but in different directories like that :
�A/welcome.jsp� for A Device ( html )
�B/welcome.jsp� for B Device.( WML )
========
Method 2 :
========
Making two applications, the fisrt for A Customer Devices and the second for
B Customer Devices, and force them to share ( if we can do so ! )
the ressources that are not Device specific.
========
Questions :
========
Am I Wrong ? ( because none of these methods should be applied or there is a
simple way )
Best way ?
Thank you all for your answers,
Manuel Vilar,