Hi folks,
at my company we're working on our major product which is a web applications based on
Struts 1.x. Because of its age and all the well-known problems of a legacy application we're currently looking for alternative modern technologies to start a migration of the old app.
A major challenge and requirement is "customization". The core of the application is the same for all customers although there are a few parts which are specific to one customer. But the biggest customization is necessary for our view templates (which use an own XML based format at the moment). This is important because the web interface has to be tailored to conform to the corporate identity requirements of the customers. This does not only mean some different colors but instead for one customer a menu can be placed on the right side for another it can be placed on the left. Additionally there may be some smaller differences like single menu items which may be only visible for some customers but not for others. The concept we use at the moment offers a very basic overriding mechanism. There's one common pool of XML templates which can be overridden with a customer specific version. The rest of the visual differences are produced with different XSL stylesheets and CSS. But unfortunately everything is very complex so it's almost impossible to let a web designer do his job instead of a developer (who is probably not as good in web design).
From what I know and read so far the templating features of
JSF 2.0 in combination with ordinary CSS stylesheets look very promising to me. Unfortunately I'm not an expert in web design. So it's hard for me to judge if JSF 2.0 could be a potential solution. On the other hand we need a complete new framework (not only the view layer) and I like the rest of the
JEE 6 stack already very much. From this point of view JSF 2.0 would make perfect sense to me. Moreover I don't know of any existing alternative solution which would make it much easier to handle our requirements which can become complex from time to time.
Marco