indiWiz.com

Subhash's Tech Log

JSR-286: Adding Header Elements

with one comment

Some HTML elements like <link>, <script> may need to be placed in the HTML’s <head> section. For such needs, JSR-286 defines a standard way:

import javax.portlet.GenericPortlet;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.MimeResponse;
import org.w3c.dom.Element;

...

public class MyPortlet extends GenericPortlet {
  @Override
  protected void doHeaders(RenderRequest request, RenderResponse response){
    Element e = response.createElement("link");
    e.setAttribute("rel", "stylesheet");
    e.setAttribute("type", "text/css");
    e.setAttribute("href", "abc.css");
    response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, e);
  }
}

response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, ...) might be called for adding any number of headers.

We also have to add this in the portlet.xml (either in portlet scope or application scope):

<container­-runtime­-option>
  <name>javax.portlet.renderHeaders</name>
  <value>true</value>
</container­-runtime­-option>

This is because javax.portlet.renderHeaders is set to false by default.

Written by Subhash Chandran

November 19th, 2008 at 3:23 pm

Posted in Java

Tagged with , ,

One Response to 'JSR-286: Adding Header Elements'

Subscribe to comments with RSS or TrackBack to 'JSR-286: Adding Header Elements'.

  1. [...] have never done it but jsr286 allows it Flag Please sign in to flag this as [...]

Leave a Reply