27 votes

Quand utiliser f:view et f:subview ?

Je ne sais pas quels sont les avantages de l'utilisation de la <f:view> y <f:subview> . J'ai remarqué que l'on pouvait écrire des pages JSF sans les utiliser.

Quels sont les avantages de l'utilisation de ces étiquettes ?

50voto

BalusC Points 498232

<f:view>

L' <f:view> n'est utile que si vous voulez spécifier explicitement/remplacer tous les attributs disponibles tels que locale, encoding, contentType, etc ou vous voulez attacher une phase d'auditeurs. E. g.

<f:view locale="#{user.locale}" encoding="UTF-8" contentType="text/html">

Si vous ne spécifiez pas, le sane JSF par défaut sera utilisé à la place, qui est respectivement UIViewRoot#getLocale(), UTF-8 et la correspondance la plus proche de l' Accept - tête de la demande. A noté que la correspondance la plus proche de l' Accept - tête de la requête n'est pas toujours tout à fait juste. Parfois, il en résulte application/xhtml+xml en raison de la présence d' .xhtml extension dans l'URL en cas de Facelets et le webbrowser ne pas être configuré pour interpréter en text/html par défaut (comme MSIE). Vous voudriez vraiment éviter ce faux type de contenu en définissant explicitement à text/html.

Notez qu'il n'importe pas où vous l'avez mis dans le modèle. Vous pouvez même le mettre dans le modèle client en tant que proche de l'enfant de l' <ui:define>. Cependant, canonique place est immédiate comme l'enfant de l' <html> et donc d'emballage à la fois <h:head> et <h:body>. C'est aussi la façon dont c'est fait dans les JSP où il est réellement nécessaire. Dans Facelets il est facultatif et comptabilisés à titre de méta-données.

Voir aussi:


<f:subview>

L' <f:subview> va créer un autre conteneur d'attribution de noms contexte. Ceci est particulièrement utile lorsque vous souhaitez réutiliser un fichier include qui contient l'élément fixe Id, plus d'une fois dans la même vue de la racine, sinon, vous aurez une double composante des erreurs d'identification. Cependant, depuis JSF 2.0 une telle inclure le fichier peut être mieux un composant composite qui est en soi déjà un conteneur de dénomination.

Si vous ne spécifiez pas cela, alors il ne cause pas de dommage si vous n'avez pas réutiliser un composant avec le même ID physiquement plusieurs fois dans la vue.

Voir aussi:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X