Using AddThis fb:like And g:plusone Attributes With Facelets

Posted by Roger Keays, 1 December 2011, 8:32 AM

Facelets won't parse code like this because of the semicolons:

<a class="addthis_button_google_plusone" g:plusone:size="medium"></a>

The following exception is raised.

javax.faces.view.facelets.FaceletException: Error Parsing /apps/cms/tags/share.xhtml: Error Traced[line: 15] Attribute name "g:plusone" associated with an element type "a" must be followed by the ' = ' character.

CDATA escaping and f:verbatim doesn't fix the problem. The only way around this I could find is using h:output text without escaping the output.

     <!-- escaped because facelets won't parse the g:plusone:size attribute --> 
     <h:outputText escape="false" value="
       &lt;a class=&quot;addthis_button_google_plusone&quot; g:plusone:size=&quot;medium&quot;&gt;&lt;/a&gt;"/>

Notice the input needs to be escaped because facelet files are XML. Ugly. Something like Tomahawk's t:htmlTag would do a better job, but it doesn't support adding arbitrary attributes.

Add a comment

Please visit http://www.ninthavenue.com.au/using-addthis-fb-like-and-g-plusone-attributes-with-facelets to add your comments.