File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Portals and Portlets and the fly likes  the right portal framework Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Java » Portals and Portlets
Bookmark " the right portal framework" Watch " the right portal framework" New topic

the right portal framework

Jignesh Patel
Ranch Hand

Joined: Nov 03, 2001
Posts: 626


I did some interesting R & D for using appropriate framework while using portal technology and compile the thoughs of people form various sites.
I am putting all together for further disucssion.

Does Struts Satisfy Needs?



�Struts have been around for a few years and have the edge on maturity. And since it here from many years there are many developers who know struts very well.


�It is one of the first MVC framework, and hence very cumbersome and "backward" by today's standards (because of the need to maintain backward compatibility, they can't rearchitect it the way it should be done).

�The heart of Struts is the Controller. Struts use the Front Controller Pattern and Command Pattern. A single servlet takes a request, translates HTTP parameters into a Java ActionForm, and passes the ActionForm into a Struts Action class, which is a command. The URI denotes which Action class to go to. The Struts framework has one single event handler for the HTTP request. Once the request is met, the Action returns the result back to the front controller, which then uses it to choose where to navigate next. This structure restricts struts to handle only one event per request.

�Struts were designed to be model neutral, so there are no special hooks into a model layer. There are a view reflection-based copy utilities, but that's it. Usually, page data must be moved from an Action Form into another Model input format and requires manual coding. The Action Form class provides an extra layer of tedious coding and state transition.

�It designed to be mode neutral, so there are no special hooks into struts. Page data must be moved from an Action Form into another Model input format and requires manual coding. The ActionForm class, provides an extra layer of tedious coding and state transition


�Struts1.x+webwork2 = Struts2.x

�It provides some goodies like

oStateful Checkboxes
oFirst class AJAX support
oEasy integration with Spring Framework
oNo More Actions Forms, use POJO forms
oEasy to Customize Controller
oEasy Plugins etc. etc.
oStateful Checkboxes
oFirst class AJAX support
oEasy integration with Spring Framework
oNo More Actions Forms, use POJO forms
oEasy to Customize Controller
oEasy Plugins etc. etc.

� The major change in Struts 2 might be learning curve for developers.
� You can find more detail information on Struts2 site.

Does JSF Satisfy Needs?


�JSF is an official standard from sun. It is a Specification, hence will have lots of implementations. It is also now part of the J2EE specs. Therefore any vendor that wants to be J2EE compliant is forced to come out with a JSF implementation and provide support for it.

�JSF has been designed from the ground up to support Portlets (JSR 168). It just fits into the portal. It is almost like a container agnostic framework. You can write JSF for standard web development and then turn around and put it into a portlet with little if any change.

�JSF was built with a component model in mind to allow tool developers to support RAD development. JSF provides the ability to build components from variety of view technologies like Rational Software Developer etc.

�JSF uses the Page Controller Pattern. Although there is a single servlet every faces request goes through, the job of the servlet is to receive a faces page with components. It will then fire off events for each component and render the components using a render toolkit. The components can also be bound to data from the model. Thus JSF can have several event handlers on a page and can be hooked into model without breaking model, In short, JSF adds many benefits of FrontController but at the same time gives flexibility of Page Controller.

�The new portlet specification JSR286 as opposed to JSR -168, speaks quite a bit on the topic of JSF support. It's just an added bit of confidence that the JSF portlet apps we write now will be very portable in future portal applications servers.

�IBM is a pioneer in portlet technology and although they heavily supported struts in their portal, their portal team strongly recommends using JSF instead of struts.


�Using JSTL in JSF produces un-specified results. It works sometimes and does not work some times.

�There is no apparent support for Portlet Modes or Preferences.

Does Spring Satisfy Needs?

�Spring itself is more than a MVC framework. Spring is made up of many components, main component being the Core Container (Beans, BeanFactory, ApplicationContext, etc) that provide the Dependency injection via a lightweight container, and the rest of the components (e.g. AOP, Transaction Management, etc. ) are built around it.

�The idea is that Spring allows you to use what ever you want, to mix and match its components easily. So in effect, you can use Spring to do your Transaction Management and AOP but choose to use Spring MVC, Struts or JSF as your MVC framework.

�Spring MVC is again action oriented framework like Struts and unlike JSF and Tapestry.

�There is a Spring Portlet Framework available now, which is gaining industry acceptance.

Can we think of Tapestry?

�Tapestry is a innovative and since it is complicated to use. It has a steep learning curve.

�It has same model like JSF so it can�t compete with JSF. But here is a very good discussion of using one over another.


�In general, unless there is a compelling need, direct use of portlet API is recommended instead of using any framework. For less complicated portlets can also give a thought of using tools like IBM portlet factory.
�As till today there is no specific portlet framework available, till then a long-term strategy would be to move to JSF as other then all the pros following information also forces to use JSF.

oJSF has Specification.
oIt is integrated in JEE 5

�At first glance Struts 2 looks promising, but yet not proved as being very new and developers are readily not available.

[ October 03, 2007: Message edited by: Jignesh Patel ]
[ February 06, 2008: Message edited by: Bear Bibeault ]
Cameron Wallace McKenzie
author and cow tipper
Saloon Keeper

Joined: Aug 26, 2006
Posts: 4968

Well said. Don't be surprised if you find that whole post plagarized and placed at the back of the next edition of my portlet programming book.

There are no 'right frameworks.' There are only 'wrong frameworks.' The best we can do is not use the wrong framework.

One thing that can't be debated is the fact that JSF is being tightly integrated into the next specification, JSR-286. Plus, Sun is heavily behind JSF, and IBM has seemed to put more stress on JSF portlets, as opposed to Struts portlets, which they really pushed heavily in WPS 5.0.

Bigger portlet apps, I like JSF. Really big ones, do the heart with Spring. For the simple and straight forward stuff, the JSR-168 API is often the way to go.

-Cameron McKenzie
Jignesh Patel
Ranch Hand

Joined: Nov 03, 2001
Posts: 626


I am fine if my threads are useful for your book writing.
If you need any other help in writing I can do that.

Joined: Sep 28, 2002
Posts: 3

I found your post more informative. Thanks for that. Could you please also throw some light on how did you use struts 2 app as portlets. If you have found some portlet bridge for struts 2 could you please point us to the same.


vishnu<br /><br />SCJP SCWCD
Ben Souther

Joined: Dec 11, 2004
Posts: 13410

Please check your private messages.

Java API J2EE API Servlet Spec JSP Spec How to ask a question... Simple Servlet Examples jsonf
Bakann Dy

Joined: Jul 03, 2008
Posts: 1
Any news on portlet bridge for struts 2 ?
Bear Bibeault
Author and ninkuma

Joined: Jan 10, 2002
Posts: 63870

"Bakann DY", please check your private messages for an important administrative matter.

[Asking smart questions] [About Bear] [Books by Bear]
Srikanth Ganji

Joined: Apr 03, 2008
Posts: 24
Hi All,

Can you Pl. post the steps involved in creating the struts portlet as iam looking the same.
The env I want to use is Sun Portal Java Server 7.x.

Thanks & regards
I agree. Here's the link:
subject: the right portal framework
It's not a secret anymore!