Class GenericPortlet
- All Implemented Interfaces:
Portlet
,PortletConfig
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 override at least
one method, usually one of the following:
- processAction, to handle action requests
- doView, to handle render requests when in VIEW mode
- doEdit, to handle render requests when in EDIT mode
- doHelp, to handle render request when in HELP mode
- init and destroy, to manage resources that are held for the life of the servlet
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.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 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 theedit
mode.protected void
doHelp
(RenderRequest request, RenderResponse response) Helper method to serve up thehelp
mode.protected void
doView
(RenderRequest request, RenderResponse response) Helper method to serve up the mandatoryview
mode.getInitParameter
(String name) Returns a String containing the value of the named initialization parameter, or null if the parameter does not exist.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.Returns the PortletConfig object of this portlet.Returns thePortletContext
of the portlet application the portlet is in.Returns the name of this portlet.getResourceBundle
(Locale locale) Gets the resource bundle for the given locale based on the resource bundle defined in the deployment descriptor withresource-bundle
tag or the inlined resources defined in the deployment descriptor.protected 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 callsuper.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
render
(RenderRequest request, RenderResponse response) The default implementation of this method sets the title using thegetTitle
method and invokes thedoDispatch
method.
-
Field Details
-
config
-
-
Constructor Details
-
GenericPortlet
public GenericPortlet()Does nothing.
-
-
Method Details
-
init
Called by the portlet container to indicate to a portlet that the portlet is being placed into service.The default implementation just stores the
PortletConfig
object.The portlet container calls the
init
method exactly once after instantiating the portlet. Theinit
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:- it throws a
PortletException
- it does not return within a time period defined by the Web server
- Specified by:
init
in interfacePortlet
- Parameters:
config
- aPortletConfig
object containing the portlet configuration and initialization parameters- Throws:
PortletException
- if an exception has occurred that interferes with the portlet normal operation.UnavailableException
- if the portlet cannot perform the initialization at this time.
- it throws a
-
init
A convenience method which can be overridden so that there's no need to callsuper.init(config)
.Instead of overriding
init(PortletConfig)
, simply override this method and it will be called byGenericPortlet.init(PortletConfig config)
. ThePortletConfig
object can still be retrieved viagetPortletConfig()
.- Throws:
PortletException
- if an exception has occurred that interferes with the portlet normal operation.UnavailableException
- if the portlet is unavailable to perform init
-
processAction
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, IOException Called by the portlet container to allow the portlet to process an action request. This method is called if the client request was originated by a URL created (by the portlet) with theRenderResponse.createActionURL()
method.The default implementation throws an exception.
- Specified by:
processAction
in interfacePortlet
- Parameters:
request
- the action requestresponse
- the action response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to process the action at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem
-
render
public void render(RenderRequest request, RenderResponse response) throws PortletException, IOException The default implementation of this method sets the title using thegetTitle
method and invokes thedoDispatch
method.- Specified by:
render
in interfacePortlet
- Parameters:
request
- the render requestresponse
- the render response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to perform render at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem
-
getTitle
Used by the render method to get the title.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:
- language-dependant titles for multi-lingual portals
- shorter titles for WAP phones
- the number of messages in a mailbox portlet
- Returns:
- the portlet title for this window
-
doDispatch
protected void doDispatch(RenderRequest request, RenderResponse response) throws PortletException, IOException The default implementation of this method routes the render request to a set of helper methods depending on the current portlet mode the portlet is currently in. These methods are:doView
for handlingview
requestsdoEdit
for handlingedit
requestsdoHelp
for handlinghelp
requests
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 override this method.
- Parameters:
request
- the render requestresponse
- the render response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to perform render at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem- See Also:
-
doView
protected void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException Helper method to serve up the mandatoryview
mode.The default implementation throws an exception.
- Parameters:
request
- the portlet requestresponse
- the render response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to perform render at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem
-
doEdit
protected void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException Helper method to serve up theedit
mode.The default implementation throws an exception.
- Parameters:
request
- the portlet requestresponse
- the render response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to perform render at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem
-
doHelp
protected void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException Helper method to serve up thehelp
mode.The default implementation throws an exception.
- Parameters:
request
- the portlet requestresponse
- the render response- Throws:
PortletException
- if the portlet cannot fulfilling the requestUnavailableException
- if the portlet is unavailable to perform render at this timePortletSecurityException
- if the portlet cannot fullfill this request because of security reasonsIOException
- if the streaming causes an I/O problem
-
getPortletConfig
Returns the PortletConfig object of this portlet.- Returns:
- the PortletConfig object of this portlet
-
destroy
public void destroy()Called by the portlet container to indicate to a portlet that the portlet is being taken out of service.The default implementation does nothing.
-
getPortletName
Returns the name of this portlet.- Specified by:
getPortletName
in interfacePortletConfig
- Returns:
- the portlet name
- See Also:
-
getPortletContext
Returns thePortletContext
of the portlet application the portlet is in.- Specified by:
getPortletContext
in interfacePortletConfig
- Returns:
- the portlet application context
- See Also:
-
getResourceBundle
Gets the resource bundle for the given locale based on the resource bundle defined in the deployment descriptor withresource-bundle
tag or the inlined resources defined in the deployment descriptor.- Specified by:
getResourceBundle
in interfacePortletConfig
- Parameters:
locale
- the locale for which to retrieve the resource bundle- Returns:
- the resource bundle for the given locale
-
getInitParameter
Returns a String containing the value of the named initialization parameter, or null if the parameter does not exist.- Specified by:
getInitParameter
in interfacePortletConfig
- Parameters:
name
- aString
specifying the name of the initialization parameter- Returns:
- a
String
containing the value of the initialization parameter - Throws:
IllegalArgumentException
- if name isnull
.
-
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.- Specified by:
getInitParameterNames
in interfacePortletConfig
- Returns:
- an
Enumeration
ofString
objects containing the names of the portlet initialization parameters, or an empty Enumeration if the portlet has no initialization parameters.
-