Comment insérer des caractères spéciaux comme &, et < en composants JSF de valeur de l'attribut?
Comment insérer des caractères spéciaux comme &
et <
en composants JSF value
attribut ?
Par exemple: je veux quelque chose comme ceci:
<h:outputText value="Tom & Jerry Show" />
Quand j'ai essayer ceci, j'obtiens l'exception suivante:
javax.des visages.vue.facelets.FaceletException: Erreur d'Analyse /foo.xhtml: Erreur de Tracé[en ligne: 15] Le nom de l'entité doit suivre immédiatement le "& " dans l'entité de référence.
Et en cas de <
, j'obtiens l'exception suivante:
javax.des visages.vue.facelets.FaceletException: Erreur d'Analyse /foo.xhtml: Erreur de Tracé[en ligne: 15] La valeur de l'attribut "value" associé à un élément de type "h:outputText" ne doit pas contenir le '<' caractère.
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour échapper à Entités XML.
Ce problème n'est pas lié à la JSF en soi, mais à la vue de la technologie. Vous êtes apparemment en utilisant Facelets (ce qui est parfaitement bien!). Facelets est cependant un XML en fonction de la technologie, de sorte que vous devez pour s'assurer que le modèle est bien formé XML et que tous les caractères spéciaux qui sont représentées comme-est, a été échappé, comme ci-dessus.
Dans le wikipédia vous pouvez trouver une liste des predefinied des entités de caractères qui besoins être échappé dans le fichier XML à chaque fois que vous souhaitez afficher en tant que-est. Il sont les suivantes entités de caractères:
Voir aussi:
á
qui rendá
. S'il vous plaît comment puis-je réaliser cet objectif dans le JSF, dans les deux: texte scénarios et, par exemple, unh:link
'svalue
attribut?. Merciá
tout de suite dans le fichier et l'enregistrer. Nous ne sommes pas en 1990, plus. Vous pouvez enregistrer les fichiers en UTF-8 (tant que votre éditeur de texte est correctement configuré pour le faire). XML utilise déjà par défaut UTF-8. Entités XML ne sont nécessaires que pour XML-les caractères spéciaux tels que les cinq mentionnés dans la réponse, pas pour les autres.