L' <h:outputLink>
rend un fullworthy HTML <a>
élément avec la bonne URL dans l' href
attribut qui tire un bookmarkable requête GET. Il ne peut pas invoquer directement un managed bean méthode d'action.
<h:outputLink value="destination.xhtml">link text</h:outputLink>
L' <h:commandLink>
rend un HTML <a>
éléments onclick
script qui présente une (caché) formulaire de publication et peuvent invoquer un managed bean méthode d'action. Il est également nécessaire pour être placé à l'intérieur d'un <h:form>
.
<h:form>
<h:commandLink value="link text" action="destination" />
</h:form>
L' ?faces-redirect=true
paramètre sur l' <h:commandLink>
, ce qui déclenche une redirection après le POST (comme par la Poste-Réacheminement-Get modèle), seulement améliore bookmarkability de la page cible lorsque le lien est effectivement cliqué (l'URL ne sera pas "derrière"), mais on ne change pas l' href
de la <a>
élément à un fullworthy URL. Il reste encore #
.
Depuis JSF 2.0, il y a aussi l' <h:link>
, ce qui peut prendre un point de vue ID (un de navigation en cas de résultat) au lieu d'une URL. Il va générer un HTML <a>
élément aussi bien avec la bonne URL, en href
.
<h:link value="link text" outcome="destination" />
Alors, si c'est pour les purs et bookmarkable page-à-page de navigation comme la SORTE de nom d'utilisateur, puis utiliser <h:outputLink>
ou <h:link>
. C'est aussi mieux pour le RÉFÉRENCEMENT depuis les bots n'a généralement pas de chiffrement POST les formes ni du code JS. Aussi, UX sera améliorée puisque les pages sont maintenant bookmarkable et l'URL n'est pas "derrière".
Si nécessaire, vous pouvez faire le prétraitement de l'emploi dans le constructeur ou l' @PostConstruct
d'un @RequestScoped
ou @ViewScoped
@ManagedBean
qui est attaché à la page de destination en question. Vous pouvez faire usage de @ManagedProperty
ou <f:viewParam>
pour définir les paramètres GET comme des propriétés du bean.
Voir aussi: