The getContent() method of a portlet takes a RunData object, which is passed through from an internal component called Turbine. The RunData class is one of the few Turbine classes that you must deal with often. Turbine is a MVC-2 (Model View Controller) Servlet framework that Jetspeed was founded upon.
Another component coupled to in the Portlet interface is the Element Construction Set (ECS), an object-based mark-up generator. The Jetspeed Portlet interface requires that portlets return ECS elements as their content. It uses Java objects to construct the elements of the respective mark-up. Admittedly, this approach is better than hard coding mark-up tags, but it still places mark-up information into compiled code.
Therefore, we generally recommend using a page template mechanism of your choice, rather than using ECS directly. The majority of the portlets in Jetspeed are based upon the base class Velocity Portlet, a template-based portlet which does not mix Java source with mark-up. Similarly, you can use the JSP Portlet to create MVC portlets based upon the Java JSP standard.
Note: Starting with version 2.0 of Jetspeed, ECS will be deprecated.