Exemple de lien JSF 2, commandLink et outputLink

Dans JSF, les balises<h:link />,<h:commandLink /> et<h:outputLink /> sont utilisées pour rendre un élément d'ancrage HTML «a», voir les exemples ci-dessous pour comprendre les différents entre eux.

Note
Dans les exemples ci-dessous, supposons que «/ JavaServerFaces /» est la racine de l'URL de contexte de votre projet.

La balise «h:link» est une nouvelle balise dans JSF 2.0, l'attribut «value» est rendu comme texte d'ancrage, l'attribut «outcome» est déterminé comme l'URL cible du HTML. Attributhref ”. Voir des exemples:

1. lien + «résultat»

//JSF


//HTML output
Login page

2. lien + «résultat» + paramètre

//JSF

    


//HTML output
Login page + Param

3. lien + «résultat» + image

//JSF

    


//HTML output

    

La balise «h:commandLink» est libérée depuis JSF 1.x, qui génère un lien agissant comme un bouton d'envoi lorsque vous cliquez dessus. L'attribut «value» est rendu comme le texte d'ancrage, l'attribut «action» est déterminé comme l'URL cible de l'attribut HTML «href». De plus, le «h: commandLink» inclura un fichier «jsf.js» dans la page et joint un événement «onclick» au lien généré, voir exemples:

Note
Le «j_idtx» est une valeur aléatoire générée par JSF.

1. commandLink

//JSF


//HTML output



    Login page

P.S if the “action” attribute is omitted, it will reload current page while the button is clicked.

2. commandLink + action

//JSF


//HTML output



    Login page

P.S You can’t even find the action value in the HTML output, only JSF will know where it goes.

3. commandLink + action + paramètre

//JSF

    


//HTML output



    Login page + Param

4. commandLink + action + image

//JSF

    


//HTML output



    

La balise «h:outputLink» est publiée dans JSF 1.x, le corps de la balise est rendu comme le texte d'ancrage, l'attribut «value» est rendu comme la valeur du HTML «href ”directement, voir les exemples:

1. outputLink

//JSF
Login page

//HTML output
Login page

P.S if the “value” attribute is omitted, it will put the current page URL as the value of the “href” attribute.

2. outputLink + "valeur"

//JSF

    Login page


//HTML output

    Login page

3. outputLink + "valeur" + outputText + paramètre

//JSF

    
    


//HTML output
Login page

4. outputLink + "value" + outputText + image

//JSF

    


//HTML output

    

Ma pensée…

Un examen des trois balises de lien ci-dessus:

  1. La balise «h:link» est utile pour générer un lien qui nécessite d'interagir avec le «résultat» JSF, mais le manque de support «action» rend difficile la génération d'un résultat dynamique.

  2. Le tag «h:commandLink» est nul, le JavaScript généré est vraiment effrayant! Nous vous déconseillons d'utiliser cette balise, sauf si vous avez une bonne raison de prendre en charge. Mais il prend en charge l'attribut «action», ce qui manque à «h:link».

  3. Le «h:outputLink» est utile pour générer un lien qui ne nécessite pas d'interagir avec le programme JSF lui-même.

Enfin, ce sera parfait si l'attribut «action» est ajouté dans le «h:link».

Télécharger le code source