2010-02-16 4 views
2

J'ai deux facelet-pages: customers.xhtml (avec une liste de clients) et customer.xhtml pour la vue détaillée d'un seul client. J'utilise un h: composante dataTable à l'intérieur du customers.xhtml:Comment créer un hyperlien facelet avec des données variables en paramètre?

<h:dataTable var="customer" value="#{customerBackingBean.customers}">...</h:dataTable> 

Maintenant, je veux créer un lien hypertexte pour chaque client dans la table. Le lien hypertexte doit naviguer vers le fichier customer.xhtml. Chaque client a une propriété primaryKey, qui doit indiquer au client.xhtml quel client doit être affiché.

Comment faire? Comment cela fonctionne-t-il si j'utilise deux fèves différentes pour chaque page facelet?

Merci d'avance.

+1

J'ai vu que vous avez 0 upvotes - il est une pratique générale de upvote réponses qui sont utiles. – Bozho

+0

que vous semblez continuer à ignorer;) – Bozho

+0

Je ne suis pas inscrit. il n'est pas possible de voter sans être enregistré. – c0d3x

Répondre

2
<h:commandLink action="customer.xhtml" ..> 
    <f:setPropertyActionListener 
     target="#{customerBackingBean.currentCustomer}" 
     value="#{customer}" /> 
</h:commandLink> 
  • puis créer une propriété currentCustomer dans la fève (avec getter et setter)
  • référence #{customerBackingBean.currentCustomer} dans le customer.xhtml.

Faites juste attention avec les champs d'application - vous pourrait devez utiliser la portée de la session si vous utilisez la redirection.

0

Ou avec un lien hypertexte normal qui crée une demande GET.

<h:outputLink value="customer.jsf"> 
    <f:param name="id" value="#{customer.id}" /> 
    <h:outputText value="#{customer.name}" /> 
</h:outputLink> 

JSF favorise POST demandes, mais vous pouvez toujours utiliser GET si vous voulez - cela dépend de votre besoin et si la page doit être bookmarkable. Ensuite, vous devez obtenir l'identifiant du client actuel à partir de l'URL lorsque la page du client est rendue.

Voir How to create a GET request with parameters, using JSF and navigation-rules?