I recently came across the question of whether to use the Personalization or customization feature. I realize many people who are new to portal, face similar dilemma. So here is the question “if we have some users (roles) who want to see different content when logged in to the portal? Which technique to use, the Personalization approach or Customization approach?”
The solution can be that we develop a portlet for each role. Lets say there are 3 roles, dealer, retailer, and customer. So we develop a separate portlet for each such role. Now we can “customize” the view of each user by placing appropriate portlet on appropriate pages and showing the user a particular portlet or page on log in.
The other approach is having just one portlet. Now based on the logged in user role, a different JSP file or content rendered. That is we have personalized the data depending on the logged in information.
In my view the former approach of having 3 different portlet is better at most of the times.
One should always try to develop the application seeing the future needs and flexibility to change the application easily. Suppose we do change the Re-direct JSP to another JSP depending on the user role, this will work in this scenario. Tomorrow the Role Name might change or some new roles might be added. The new role may want to have the combination of view what we have for our current roles. We will then require to change the code to fit to changed scenario. This kind of technique is what we use in normal J2EE applications. This technique I guess is not fully exploiting the potential of portal.
Now let us look at the second approach. Have 3 portlets for 3 roles. The administrator who will deploy portlet application to the Portal server will need to create Page Views depending on the Login of each Role. He will just need to add the corresponding Portlet on those pages. If suppose the ROLE name changes or new Role is created, then there is no need to change the code. Just what portlets should be displayed to this role, will be added to the page by administrator.
The central idea is to create as many small independent information blocks as one can in form of portlets. And then combine them together to have final Content to be displayed to the end user.
The personalization features should be used when user himself is given the right to modify it or change it according to his own needs. Like changing of color and changing the number of records to be displayed are classic examples.