MyPersonalizer is a J2EE-based framework for engineering personalizable "My" portals. It is structured according to the Model-View-Controller (MVC) architectural pattern, providing generic and adaptable model and controller layers. The model layer represents persistent objects (e.g. user registration information, workspace layout, service personalization, etc.) in a generic way and makes use of meta-information about their structure, handles their persistence in a relational database, includes a framework to execute model actions and provides a generic action for each typical use case in the portal (sign in, sign up, service personalization, layout modification, etc.). The controller layer is built upon Jakarta Struts, the "de facto" MVC framework for J2EE web applications and provides a Struts action per use case, that delegates on the corresponding model action. In order to support the construction of the portal view, rather than providing a large and specific JSP tag library, controller actions are tightly integrated with Struts, so that the developer can implement the portal view as JSP pages by using Struts and JSTL tags, without inserting Java code. Personalized service replies are integrated in the portal by providing plug-ins as extensions to the controller layer.