The HTML5 doctype has no predefined entities. It assumes that the entire document is already UTF-8 aware. In other words, you can "safely" put the real non breaking space character in the HTML5 document. However, as it's not trivial to enter it in a visible way using a regular US keyboard, it's understandable that many developers prefer using an entity for it.
Facelets in turn supports as being a XML based view technology only five predefined XML entities <
, >
, &
, "
and '
. The
is not among them.
You've 2 options (apart from the 3rd option to just print the character straight in the document):
Declare the
entity yourself in the doctype:<!DOCTYPE html [ <!ENTITY nbsp " "> ]>
Or, use the (hexa)decimal notation instead:
  or