ADF 11g – include meta data tags in HEAD element – using af:document and metaContainer facet



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:

 <f:facet name="metaContainer">
     <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" />

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.



About Author

Lucas Jellema, active in IT (and with Oracle) since 1994. Oracle ACE Director for Fusion Middleware. Consultant, trainer and instructor on diverse areas including Oracle Database (SQL & PLSQL), Service Oriented Architecture, BPM, ADF, Java in various shapes and forms and many other things. Author of the Oracle Press book: Oracle SOA Suite 11g Handbook. Frequent presenter on conferences such as JavaOne, Oracle OpenWorld, ODTUG Kaleidoscope, Devoxx and OBUG. Presenter for Oracle University Celebrity specials.

1 Comment

  1. Sébastien Brodeur on

    But what the point?  It seem to me ADF Faces pages depend heavily on JavaScript to show any content.  For web crawler, only the <noscript> element is showed and indicate to activate JavaScript.  Searh engine crawler doesn’t run JavaScript, therefore those pages are not viewable, nor indexable.
    What am I missing?