Inserir tag no cabeçalho html do Portal Gatein
Publicado por Rodrigo Ramalho da Silva em Java, portal em 17/01/2012
Esses dias precisei inserir uma tag no cabeçalho de todas as páginas que estivessem no portal gatein.
Existem duas maneiras de fazer isso:
1. Criando um portlet que insere essa tag no <head> da página, carregando pelo método doHeader.
o código do portlet deverá ser semelhante a esse:
public class HeaderExtension extends GenericPortlet {
@Override
protected void doHeaders(RenderRequest request, RenderResponse response) {
Element meta = response.createElement("meta");
meta.setAttribute("http-equiv", "X-UA-Compatible");
meta.setAttribute("content", "IE=edge");
response.addProperty(MimeResponse.MARKUP_HEAD_ELEMENT, meta);
}
@Override
public void doView(RenderRequest request, RenderResponse response) {
PortletRequestDispatcher prd = getPortletContext().getRequestDispatcher("/jsp/index.jsp");
try {
prd.include(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Com isso basta colocar este portlet no layout do site e ele irá colocar toda vez essa tag no cabeçalho da página. Pode ser usado também pra carregar css, javascript, etc.. (Veja mais)
Porém com essa abordagem tudo que for inserido aparece no final da tag head, ou seja, próximo ao /head. As vezes é necessário que a tag esteja no começo do head, como no caso da tag:
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
Que é utilizada para compatibilidade com o Internet Explorer.
Com este cenário temos que alterar o fonte do template groovy que o portal utiliza. O arquivo pode ser encontrado em:
$JBOSS_EPP_HOME/server/$SERVER_NAME/deploy/gatein-wcm-extension-2.1.5-CP02.ear/ecm-wcm-extension.war/groovy/portal/webui/workspace/UIPortalApplication.gtmpl
Ps: É necessário explodir o arquivo gatein-wcm-extension-2.1.5-CP02.ear e o ecm-wcm-extension.war
Feita a alteração neste template groovy basta reiniciar o portal.