ADF Faces 11g does not contain tags such as af:head and af:body. Instead there is af:document, an abstraction from the documents served to potentially different clients. A JSF page can be rendered as HTML – with a HEAD and BODY tag – but also to other clients and renderformats that do not have the HEAD and BODY concept. Hence the abstraction.

When your ADF Faces page does render as HTML to a web browser, the af:document will render both HEAD and BODY. If you want to specify the title attribute for the HEAD, you have to set the title attribute on af:document.

When you want to set the meta tags in the HEAD section – for example to do some SEO (Search Engine Optimization) you need to use the metaContainer facet of the af:document component. This facet is also used for including JavaScript snippets in the HEAD – see for example this article by Frank Nimphius.

To set the values of meta-tags, you use code like this:


<af:document>
 <f:facet name="metaContainer">
   <f:verbatim>
     <meta name="description" content="Some very interesting bit of meta information about the page" />
     <meta name="keywords" content="money profit huge pile gold treasure rich filthy rich happy few" />
   </f:verbatim>
 </f:facet>

Note that the f:verbatim is one way of dealing with the fact that <meta>  is not a recognized nor allowed child of a facet or any other JSF component.

Thanks Daan for collaborating on this one.