public interface HeaderResponse extends MimeResponse
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.
RenderResponse
,
HeaderRequest
,
HeaderPortlet
,
PortletResponse
,
MimeResponse
MimeResponse.Copy
CACHE_SCOPE, ETAG, EXPIRATION_CACHE, MARKUP_HEAD_ELEMENT, NAMESPACED_RESPONSE, PRIVATE_SCOPE, PUBLIC_SCOPE, USE_CACHED_CONTENT
Modifier and Type | Method and Description |
---|---|
void |
addDependency(String name,
String scope,
String version)
Adds a dependency on a page-level resource that is managed by the portal.
|
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.
|
OutputStream |
getPortletOutputStream()
Data written to the
HeaderResponse output stream is added
to the aggregated portal document HEAD section. |
PrintWriter |
getWriter()
Data written to the
HeaderResponse writer is added
to the aggregated portal document HEAD section. |
void |
setContentType(String type)
Sets the MIME type for the header response.
|
void |
setTitle(String title)
This method sets the title of the portlet.
|
createActionURL, createActionURL, createRenderURL, createRenderURL, createResourceURL, flushBuffer, getBufferSize, getCacheControl, getCharacterEncoding, getContentType, getLocale, isCommitted, reset, resetBuffer, setBufferSize
addProperty, addProperty, addProperty, createElement, encodeURL, getNamespace, getProperty, getPropertyNames, getPropertyValues, setProperty
void setTitle(String title)
The value can be a text String
title
- portlet title as text String or resource URIvoid setContentType(String type)
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.
setContentType
in interface MimeResponse
type
- the content MIME typeIllegalArgumentException
- if the given type is not in the list
returned by PortletRequest.getResponseContentTypes
PortletRequest.getResponseContentTypes()
,
MimeResponse.getContentType()
PrintWriter getWriter() throws IOException
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 MimeResponse.setContentType(java.lang.String)
method.
Either this method or MimeResponse.getPortletOutputStream()
may be called to
write the body, not both.
getWriter
in interface MimeResponse
PrintWriter
object that can return character
data to the portalIOException
- if an input or output exception occurredMimeResponse.setContentType(java.lang.String)
,
MimeResponse.getPortletOutputStream()
OutputStream getPortletOutputStream() throws IOException
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 MimeResponse.setContentType(java.lang.String)
method.
Calling flush()
on the OutputStream commits the response.
Either this method or MimeResponse.getWriter()
may be called to write the body,
not both.
getPortletOutputStream
in interface MimeResponse
OutputStream
for writing binary dataIOException
- if an input or output exception occurredMimeResponse.setContentType(java.lang.String)
,
MimeResponse.getWriter()
void addDependency(String name, String scope, String version)
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.
name
- the resource namescope
- the resource scope, may be null
or emptyversion
- the resource version, may be null
or emptyIllegalArgumentException
- if name is null
or emptyPortletResponse.addProperty(String, org.w3c.dom.Element)
,
getWriter()
,
getPortletOutputStream()
void addDependency(String name, String scope, String version, String markup)
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.
name
- the resource namescope
- the resource scope, may be null
or emptyversion
- the resource version, may be null
or emptymarkup
- the markup for adding the resource to the pageIllegalArgumentException
- if name is null
or empty
or if markup does not contain valid tags for the document HEAD
sectionJava Portlet 3.0 API Specification. See the Copyright and License provided with this distribution. Use is subject to license terms.