Top Description Fields Methods
javax.portlet

public Interface HeaderResponse

extends MimeResponse
Known Direct Implementers
javax.portlet.filter.HeaderResponseWrapper

The portlet programming interface provides a mechanism to assist portlets when the aggregated portal markup is an HTML or similar document that requires markup for the document HEAD section to be written and HTTP headers to be set before the render markup for each individual portlet is aggregated. This mechanism is represented in the portlet API by the HeaderPortlet, HeaderRequest, and HeaderResponse interfaces.

The HeaderResponse defines an object to assist a portlet in sending a response to the portal. It extends the MimeResponse interface to provide specific header response functionality to portlets.

The portlet container creates a HeaderResponse object and passes it as argument to the portlet's renderHeaders method in order to allow the portlet to add response headers and generate markup for the overall portal response document HEAD section.

Since
3.0
See Also
RenderResponse, HeaderRequest, HeaderPortlet, PortletResponse, MimeResponse

Field Summary

Inherited from javax.portlet.MimeResponse:
CACHE_SCOPEETAGEXPIRATION_CACHEMARKUP_HEAD_ELEMENTNAMESPACED_RESPONSEPRIVATE_SCOPEPUBLIC_SCOPEUSE_CACHED_CONTENT

Method Summary

Modifier and TypeMethod and Description
public void
addDependency(String
the resource name
name
,
String
the resource scope, may be null or empty
scope
,
String
the resource version, may be null or empty
version
)

Adds a dependency on a page-level resource that is managed by the portal.
public void
addDependency(String
the resource name
name
,
String
the resource scope, may be null or empty
scope
,
String
the resource version, may be null or empty
version
,
String
the markup for adding the resource to the page
markup
)

Adds a dependency on a page-level resource that is managed by the portal and adds a resource for addition to the page for the dependency.
public OutputStream
getPortletOutputStream()

Redeclares javax.portlet.MimeResponse.getPortletOutputStream.

Data written to the HeaderResponse output stream is added to the aggregated portal document HEAD section.
public PrintWriter
getWriter()

Redeclares javax.portlet.MimeResponse.getWriter.

Data written to the HeaderResponse writer is added to the aggregated portal document HEAD section.
public void
setContentType(String
the content MIME type
type
)

Redeclares javax.portlet.MimeResponse.setContentType.

Sets the MIME type for the header response.
public void
setTitle(String
portlet title as text String or resource URI
title
)

This method sets the title of the portlet.
Inherited from javax.portlet.MimeResponse:
createActionURLcreateActionURLcreateRenderURLcreateRenderURLcreateResourceURLflushBuffergetBufferSizegetCacheControlgetCharacterEncodinggetContentTypegetLocaleisCommittedresetresetBuffersetBufferSize

Method Detail

addDependencyback to summary
public void addDependency(String name, String scope, String version)

Adds a dependency on a page-level resource that is managed by the portal.

When a portlet is aggregated onto a page, it may designate resources such as JavaScript files or style sheets that it needs to have on the page in order to operate correctly. These resources typically should be added to the aggregated document head section. Such resources are known as portlet dependencies.

The portal implementation is responsible for adding the portlet dependencies to the page during aggregation. The resources declared as dependencies are typically such that they should be added to the page only a single time, but may be used by multiple portlets.

Portlet dependencies may be configured statically either through annotations or through the portlet deployment descriptor. The resources to satisfy such dependencies will be made available on all pages on which the portlet is rendered.

The dependency added dynamically through this method is added to the statically declared dependencies for the portlet for the current rendering cycle only.

This method should only be used to add portlet dependencies that can potentially be required by or shared with other portlets as well. Strictly private dependencies, such as JavaScript code needed by this portlet only, should be added to to document head section using the PortletResponse#addProperty(String, Element) method or by using either the PrintWriter or OutputStream object obtained through the HeaderResponse.

The manner in which the portal maps the specified name, scope, and version to specific resources is left to the portal implementation.

Parameters
name:String

the resource name

scope:String

the resource scope, may be null or empty

version:String

the resource version, may be null or empty

Exceptions
IllegalArgumentException:
if name is null or empty
See Also
PortletResponse#addProperty(String, org.w3c.dom.Element), getWriter(), getPortletOutputStream()
addDependencyback to summary
public void addDependency(String name, String scope, String version, String markup)

Adds a dependency on a page-level resource that is managed by the portal and adds a resource for addition to the page for the dependency.

See addDependency(String, String, String) for a discussion of dependencies.

The specified markup element representing the resource must be suitable for inclusion in the aggregated portal document HEAD section. It will generally be either a LINK or SCRIPT tag.

This method does not directly place markup into the aggregated page document. The aggregating portal will use the identifying information name, scope, and version along with identifying information for other available page resources to determine which resources will be added to the page.

For example, if a portlet provides a resource with a version of 2.0.0 but another portlet on the same page provides a resource with the same name and scope but a version of 2.1.0, the aggregating portal may choose to include the later version of the resource on the page.

Parameters
name:String

the resource name

scope:String

the resource scope, may be null or empty

version:String

the resource version, may be null or empty

markup:String

the markup for adding the resource to the page

Exceptions
IllegalArgumentException:
if name is null or empty or if markup does not contain valid tags for the document HEAD section
getPortletOutputStreamback to summary
public OutputStream getPortletOutputStream() throws IOException

Redeclares javax.portlet.MimeResponse.getPortletOutputStream.

Doc from javax.portlet.MimeResponse.getPortletOutputStream.

Data written to the HeaderResponse output stream is added to the aggregated portal document HEAD section.

Returns a OutputStream suitable for writing binary data in the response. The portlet container does not encode the binary data.

Before calling this method the content type of the render response must be set using the setContentType method.

Calling flush() on the OutputStream commits the response.

Either this method or getWriter may be called to write the body, not both.

Returns:OutputStream

a OutputStream for writing binary data

Exceptions
IOException:
if an input or output exception occurred
getWriterback to summary
public PrintWriter getWriter() throws IOException

Redeclares javax.portlet.MimeResponse.getWriter.

Doc from javax.portlet.MimeResponse.getWriter.

Data written to the HeaderResponse writer is added to the aggregated portal document HEAD section.

Returns a PrintWriter object that can send character text to the portal.

Before calling this method the content type of the render response should be set using the setContentType method.

Either this method or getPortletOutputStream may be called to write the body, not both.

Returns:PrintWriter

a PrintWriter object that can return character data to the portal

Exceptions
IOException:
if an input or output exception occurred
setContentTypeback to summary
public void setContentType(String type)

Redeclares javax.portlet.MimeResponse.setContentType.

Sets the MIME type for the header response. The portlet should set the content type before calling getWriter or getPortletOutputStream.

Calling setContentType after getWriter or getOutputStream does not change the content type.

The portlet container will ignore any character encoding specified as part of the content type for render calls.

Parameters
type:String

the content MIME type

Exceptions
IllegalArgumentException:
if the given type is not in the list returned by PortletRequest.getResponseContentTypes
See Also
PortletRequest#getResponseContentTypes, getContentType
setTitleback to summary
public void setTitle(String title)

This method sets the title of the portlet.

The value can be a text String

Parameters
title:String

portlet title as text String or resource URI