How to insert special characters like &
and <
into JSF components value
attribute ?
For example: I want something like this:
<h:outputText value="Tom & Jerry Show" />
When I try this, I get the following exception:
javax.faces.view.facelets.FaceletException: Error Parsing /foo.xhtml: Error Traced[line: 15] The entity name must immediately follow the '&' in the entity reference.
And in case of <
, I get the following exception:
javax.faces.view.facelets.FaceletException: Error Parsing /foo.xhtml: Error Traced[line: 15] The value of attribute "value" associated with an element type "h:outputText" must not contain the '<' character.
Inserting ASCII characters To insert an ASCII character, press and hold down ALT while typing the character code. For example, to insert the degree (º) symbol, press and hold down ALT while typing 0176 on the numeric keypad. You must use the numeric keypad to type the numbers, and not the keyboard.
You need to escape them to XML entities.
<h:outputText value="Tom & Jerry Show" />
This problem is not related to JSF per se, but to the view technology. You're apparently using Facelets (which is perfectly fine!). Facelets is however a XML based view technology, so you would need to ensure that the template is well formed XML and that all special characters which are to be represented as-is, are been escaped like above.
In the wikipedia you can find a list of predefinied character entities which needs to be escaped in the XML whenever you'd like to display them as-is. It are the following character entities:
" " & & ' ' < < > >
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With