The render URL plug-in
Use the RenderURL rendering plug-in to create URLs that set or remove render parameters.
The syntax for this plug-in is as follows:
[Plugin:RenderURL copyCurrentParams="" escape="" uri="" uriMode=""
prefix.key="" prefix.value="" prefix.mode="" prefix.type=""]
This plug-in uses the following attributes:
-
copyCurrentParams
Use this attribute to determine whether you want the current portal state and the parameters that are encoded in the state to be copied into the new URL. Valid values are
true
andfalse
. The default value isfalse
. -
escape
Use this attribute to define the escaping that is used to write the URL. Specify one of the following values:
xml
,json
,javascript
, ornone
. The default isxml
.
To set, add, or remove public or private render parameters, use the following attributes. Use the prefix
before the attributes to correlate key, value, type, and mode attributes that refer to the same render parameter. The prefix must not contain a period character (.
).
-
prefix.key
Use this attribute to set the name of the parameter. For the value, specify the simple identifier of a private or public parameter.
Limited support for non-declared public render parameters: Digital Data Connector (DDC) for HCL Portal also provides limited support for public parameters that are not declared in the Web Content Viewer deployment descriptor. You can identify such parameters by the fully qualified name in the format
{ns}localname
. Non-declared public render parameters do not work when you use them with WSRP. They are not included by default in the portlet fragment cache key if portlet fragment caching is enabled. -
prefix.value
Use this attribute to set, add, or remove values for a parameter. The
prefix
must match the one set for thekey
listed earlier. To set parameters with multiple values, add multipleprefix.value
attributes to the rendering plug-in tag. -
prefix.type
Use this attribute to determine the type of parameter that you want to be set. Valid values are
private
andpublic
. -
prefix.mode
Use this attribute to determine what you want to do with the parameter values. Valid values for this attribute are as follows:
-
set
This mode is the default mode. Use this mode to set the value for the parameter. When you use this mode, the parameter value that you set replaces an existing value.
-
add
Use this mode to add a value for the parameter. When you use this mode, the parameter value that you set is added to existing values. If you use this mode, but no parameter values exist already, a new parameter is set.
-
remove
Use this mode to delete the parameter or its values. Use this mode only for private render parameters with
copyCurrentParams="true"
or for public render parameters. You can use this mode in either of two ways:- To completely remove the parameter, pass no values at all.
- To remove only specific values of a render parameter, pass only the values that you want to remove.
-
To target a portal resolver plug-in, use the following attributes. If you also specify public render parameters, these parameters are applied after the resolution is completed.
-
uri
Use this attribute to specify a valid URI that identifies the resource that you want to be resolved.
-
uriMode
Use this attribute to specify the resolution mode. Valid values are
view
anddownload
. The plug-in evaluates theuriMode
attribute only if no public render parameters are set in the same rendering plug-in tag.
To additionally include parameters for the resolver only, use one of the following attributes:
-
prefix.type="uri"
Specify the type of the parameter to identify it as a resolver parameter.
-
prefix.key
Set the name of the parameter for the resolver. Prefix can be any string
-
prefix.value
Set the value of the parameter for the resolver. To set parameters with multiple values, add the multiple value attributes to the rendering plug-in tag
Examples
All these attributes can be combined together. Examples:
-
The following plug-in tag creates a URL that completes the following two actions:
- It sets a private render parameter
private1
. - It adds multiple values
[pv1, pv2]
for the public render parameterpublic1
.[Plugin:RenderURL copyCurrentParams="true" pr1.key="private1" pr1.value="v1" pr1.type="private" pr1.mode="set" pr2.key="public1" pr2.value="pv1" pr2.value="pv2" pr2.type="public" pr2.mode="add"]
- It sets a private render parameter
-
The following plug-in tag creates a URL that completes the following two actions:
- It sets a public render parameter with multiple values by using the qualified name (
QName
){http://ibm.com}prp1
of the parameter. - It removes the private render parameter with the name
private1
.[Plugin1:RenderURL copyCurrentParams="true" pr1.key="private1" pr1.type="private" pr1.mode="remove" pr2.key="{http://ibm.com}prp1" pr2.value="pv1" pr2.value="pv2" pr2.type="public" pr2.mode="set"]
- It sets a public render parameter with multiple values by using the qualified name (
-
The following plug-in tag creates a URL that completes the following two actions:
- It resolves the URI to a page that is identified by the URI parameter.
- It adds the value for the public render parameter by using the qualified name (
QName
){http://ibm.com}prp1
of the parameter on the page that was resolved in the previous step. It sets the value topv1
.[Plugin:RenderURL copyCurrentParams="true" uri="nm:oid:pageid" pr2.key="{http://ibm.com}prp1" pr2.value="pv1" pr2.type="public" pr2.mode="add"]
The following examples show how you can set render parameters when the form is submitted, so that these parameters can be read by the portlets that are displayed on the form result page.
-
The following example sets a private render parameter, that is a parameter than can only be seen by the same portlet instance on the page that sets the parameter. To set the parameter value, specify as follows:
<form method="get" action="[Plugin:RenderURL copyCurrentParams="true"]"> <!-- This sets a private render parameter with the name param1: --> <input type="text" name="param1"> <input type="submit" value="Submit"> </form>
To read the parameter value, use the following tag in the page to which the form is submitted:
[Plugin:RenderParam key="param1"]
-
The following example sets exactly one public render parameter, that is a parameter that all portlet instances can see. The example uses the
CUSTOM_CONTEXT
parameter that is reserved and declared in the portlet.xml file by the rendering portlet. To set the parameter value, specify as follows:<form method="get" action="[Plugin:RenderURL copyCurrentParams="true"]"> <!-- This sets a public render parameter with the name CUSTOM_CONTEXT: --> <input type="text" name="CUSTOM_CONTEXT"> <input type="submit" value="Submit"> </form>
To read the parameter value, use the following tag in the page to which the form is submitted:
[Plugin:RenderParam key="CUSTOM_CONTEXT"]