|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object javax.portlet.GenericPortlet
public abstract class GenericPortlet
The GenericPortlet class provides a default implementation for the Portlet interface.
It provides an abstract class to be subclassed to create portlets. A subclass of GenericPortlet should either use one of the following annotations:
Normally there is no need to override the render or the doDispatch methods. Render handles render requests setting the title of the portlet in the response and invoking doDispatch. doDispatch dispatches the request to one of the doView, doEdit or doHelp method depending on the portlet mode indicated in the request.
Portlets typically run on multithreaded servers, so please note that a portlet must handle concurrent requests and be careful to synchronize access to shared resources. Shared resources include in-memory data such as instance or class variables and external objects such as files, database connections, and network connections.
Constructor Summary | |
---|---|
GenericPortlet()
Does nothing. |
Method Summary | |
---|---|
void | destroy()
Called by the portlet container to indicate to a portlet that the portlet is being taken out of service. |
protected void | doDispatch(RenderRequest request,
RenderResponse response)
The default implementation of this method routes the render request to: method annotated with @RenderMode and the name of the portlet mode a set of helper methods depending on the current portlet mode the portlet is currently in. |
protected void | doEdit(RenderRequest request,
RenderResponse response)
Helper method to serve up the edit mode. |
protected void | doHeaders(RenderRequest request,
RenderResponse response)
Used by the render method to set the response properties and headers. |
protected void | doHelp(RenderRequest request,
RenderResponse response)
Helper method to serve up the help mode. |
protected void | doView(RenderRequest request,
RenderResponse response)
Helper method to serve up the mandatory view mode. |
java.util.Map<java.lang.String,java.lang.String[]> | getContainerRuntimeOptions()
Returns the container runtime options and values for this portlet. |
java.lang.String | getDefaultNamespace()
Returns the default namespace for events and public parameters. |
java.lang.String | getInitParameter(java.lang.String name)
Returns a String containing the value of the named initialization * parameter, or null if the parameter does not exist. |
java.util.Enumeration<java.lang.String> | getInitParameterNames()
Returns the names of the portlet initialization parameters as an Enumeration of String objects, or an empty Enumeration if the portlet has no initialization parameters. |
protected java.util.Collection<PortletMode> | getNextPossiblePortletModes(RenderRequest request)
Used by the render method to set the next possible portlet modes. |
PortletConfig | getPortletConfig()
Returns the PortletConfig object of this portlet. |
PortletContext | getPortletContext()
Returns the PortletContext of the portlet application the portlet is in. |
java.lang.String | getPortletName()
Returns the name of this portlet. |
java.util.Enumeration<javax.xml.namespace.QName> | getProcessingEventQNames()
Returns the QNames of the processing events supported by the portlet as an Enumeration of QName objects, or an empty Enumeration if the portlet has not defined any processing events. |
java.util.Enumeration<java.lang.String> | getPublicRenderParameterNames()
Returns the names of the public render parameters supported by the portlet as an Enumeration of String objects, or an empty Enumeration if the portlet has no public render parameters. |
java.util.Enumeration<javax.xml.namespace.QName> | getPublishingEventQNames()
Returns the QNames of the publishing events supported by the portlet as an Enumeration of QName objects, or an empty Enumeration if the portlet has not defined any publishing events. |
java.util.ResourceBundle | getResourceBundle(java.util.Locale locale)
Gets the resource bundle for the given locale based on the resource bundle defined in the deployment descriptor with resource-bundle tag or the inlined resources defined in the deployment descriptor. |
java.util.Enumeration<java.util.Locale> | getSupportedLocales()
Returns the locales supported by the portlet as an Enumeration of Locale objects, or an empty Enumeration if the portlet has not defined any supported locales. |
protected java.lang.String | getTitle(RenderRequest request)
Used by the render method to get the title. |
void | init()
A convenience method which can be overridden so that there's no need to call super.init(config). |
void | init(PortletConfig config)
Called by the portlet container to indicate to a portlet that the portlet is being placed into service. |
void | processAction(ActionRequest request,
ActionResponse response)
Called by the portlet container to allow the portlet to process an action request. |
void | processEvent(EventRequest request,
EventResponse response)
The default implementation tries to dispatch to a method annotated with @ProcessEvent that matches the event name or, if no such method is found just sets the current render parameters on the response. Note that the annotated methods needs to be public in order to be allowed to be called by GenericPortlet. |
void | render(RenderRequest request,
RenderResponse response)
The default implementation of this method sets the headers using the doHeaders method, sets the title using the getTitle method and invokes the doDispatch method. |
void | serveResource(ResourceRequest request,
ResourceResponse response)
Default resource serving. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public GenericPortlet()
Method Detail |
---|
public void init(PortletConfig config) throws PortletException
The default implementation stores the PortletConfig object and checks for annotated methods with the annotations
The portlet container calls the init method exactly once after instantiating the portlet. The init method must complete successfully before the portlet can receive any requests.
The portlet container cannot place the portlet into service if the init method does one of the following:
public void init() throws PortletException
Instead of overriding init(PortletConfig), simply override this method and it will be called by GenericPortlet.init(PortletConfig config). The PortletConfig object can still be retrieved via getPortletConfig().
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException
The default implementation tries to dispatch to a method
annotated with @ProcessAction that matches the action parameter
value ActionRequest.ACTION_NAME or, if no
such method is found throws a PortletException.
Note that the annotated methods needs to be public in order
to be allowed to be called by GenericPortlet.
public void render(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException
It also evaluates the RENDER_PART request attribute and if
set calls the doHeaders, getNextPossiblePortletModes and
getTitle methods for the RENDER_HEADERS
part and the doDispatch method for the
RENDER_MARKUP part.
If the RENDER_PART request attribute is not set all of the
above methods will be called.
protected java.lang.String getTitle(RenderRequest request)
The default implementation gets the title from the ResourceBundle of the PortletConfig of the portlet. The title is retrieved using the 'javax.portlet.title' resource name.
Portlets can overwrite this method to provide dynamic titles (e.g. based on locale, client, and session information). Examples are:
protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException
If the window state of this portlet is minimized, this method does not invoke any of the portlet mode rendering methods.
For handling custom portlet modes the portlet should either use the @RenderMode annotation or override this method. Note that the annotated methods needs to be public in order to be allowed to be called by GenericPortlet.
protected void doView(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException
The default implementation throws an exception.
protected void doEdit(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException
The default implementation throws an exception.
protected void doHelp(RenderRequest request, RenderResponse response) throws PortletException, java.io.IOException
The default implementation throws an exception.
public PortletConfig getPortletConfig()
public void destroy()
The default implementation does nothing.
public java.lang.String getPortletName()
public PortletContext getPortletContext()
public java.util.ResourceBundle getResourceBundle(java.util.Locale locale)
public java.lang.String getInitParameter(java.lang.String name)
public java.util.Enumeration<java.lang.String> getInitParameterNames()
public java.util.Enumeration<javax.xml.namespace.QName> getProcessingEventQNames()
Processing events are defined in the portlet deployment descriptor with the supported-processing-event element.
If the event was defined using the name element instead of the qname element the defined default namespace is added as namespace for the returned QName.
public java.util.Enumeration<javax.xml.namespace.QName> getPublishingEventQNames()
Publishing events are defined in the portlet deployment descriptor with the supported-publishing-event element.
Note that this call does not return any events published that have not been declared in the deployment descriptor as supported.
If the event was defined using the name element instead of the qname element the defined default namespace is added as namespace for the returned QName.
public java.util.Enumeration<java.util.Locale> getSupportedLocales()
Supported locales are defined in the portlet deployment descriptor with the supported-locale element.
public java.util.Map<java.lang.String,java.lang.String[]> getContainerRuntimeOptions()
The portlet can set container runtime
options in the portlet.xml via the
container-runtime-option element with a name and a
value on the application and portlet level.
If a container runtime option is set on the portlet application
level and on the portlet level with the same name the setting
on the portlet level takes precedence and overwrites the one
set on the portal application level.
The map returned from this method will provide the subset the portlet container supports of the options the portlet has specified in the portlet.xml. Options that the portlet container does not support will not be returned in this map.
The map will contain name of the runtime option as key of type String and the runtime options as values of type String array (String[]) with the values specified in the portlet.xml deployment descriptor.
public void serveResource(ResourceRequest request, ResourceResponse response) throws PortletException, java.io.IOException
The default implemention of this method is to call a RequestDispatcher.foward with the ResourceID of the ResourceRequest.
If no ResourceID is set on the resource URL the default implementation does nothing.
public void processEvent(EventRequest request, EventResponse response) throws PortletException, java.io.IOException
protected void doHeaders(RenderRequest request, RenderResponse response)
The portlet should override this method and set its response header using this method in order to ensure that they are set before anything is written to the output stream.
The default implemention of this method is emtpy.
protected java.util.Collection<PortletMode> getNextPossiblePortletModes(RenderRequest request)
The portlet should override this method and set the next possible portlet modes using this method in order to ensure that they are set before anything is written to the output stream.
The default implemention of this method returns null.
public java.util.Enumeration<java.lang.String> getPublicRenderParameterNames()
public java.lang.String getDefaultNamespace()
If no default namespace is defined in the portlet deployment descriptor this methods returns the XML default namespace XMLConstants.NULL_NS_URI.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |