2010-09-23 22 views
1

J'essaie de passer un <f:param name="id" value="{someValue.id}" /> et de le récupérer dans la page suivante (donc je peux le mettre dans un lien de sortie). Voilà ce que j'ai essayé:Obtenez la valeur <f:param> dans une page de jsf?

<h:outputLink value="#{linkController.clientEdit}?id={id}">#{linkController.clientEdit}?id={id}</h:outputLink> 

Le problème est, la partie qui se trouve entre les impressions d'étiquette ce que je veux, à savoir:/chemin/vers id = 1, mais la valeur du lien de sortie est/mon/chemin ? id = {id}. Est-il possible de mettre cette valeur d'id dans l'attribut de valeur de outputLink?

@Edit: l'ensemble de l'application est un peu bizarre: nous avons un dataTable avec des enregistrements, la dernière colonne contient une image qui si vous cliquez sur la ligne courante dans un bean (keppAlive) et montre un contextMenu (RichFaces) qui a à menuItems: éditer et supprimer. Lorsque je clique sur modifier, je veux être redirigé vers la page d'édition avec le paramètre id. Le problème est le menuItem a seulement un attribut d'action qui prend un String où aller, mais quand il va là il ne change pas l'URL dans le navigateur. C'est pourquoi j'ai voulu mettre le outputLink dans le menuItem et laisser tomber l'attribut d'action ...

Répondre

2

Vous avez oublié le préfixe EL #.

<f:param name="id" value="#{someValue.id}" /> 

Ensuite, pour y accéder à la demande ultérieure, utilisez #{param.name}. Alors:

#{linkController.clientEdit}?id=#{param.id}

Le #{param} fait référence à un Map<String, String> avec tous les paramètres de demande paires nom-valeur.

+0

En fait j'ai essayé de faire cela mais le résultat était quelque chose comme "/ my/path? Id =" donc il n'a même pas mis quelque chose où # {param.id} était. –

+0

La façon dont vous l'avez passé est incorrecte ou il y a eu une redirection. – BalusC

+0

J'ai édité mon article original sur le fonctionnement du site Web. –