Le passage d'un paramètre avec h:commandButton
J'ai un a4j:bouton de commande qui est censé me diriger vers un "Edit" à la page basée sur un Identifiant, qui je voulais passer comme paramètre, quelque chose comme ceci:
<h:commandButton action="/details.jsf?faces-redirect=true" value="details">
<f:attribute name="id" value="#{bean.id}" />
</h:commandButton>
Le problème est, il ne fonctionne pas. J'ai aussi essayé en remplaçant f:attribut avec "f:param name="id" value="#{bean.id}" ", mais il a aussi échoué. La seule chose que j'ai eu à travailler est un outputLink:
<h:outputLink value="/details.jsf">
link
<f:param name="id" value="#{bean.id}" />
</h:outputLink>
Mais je ne suis pas vraiment heureux avec un lien, donc, il y a un moyen de rendre le bouton de commande de travail?
Oh et j'ai aussi un haricot qui est censé être "id" après la redirection:
@PostConstruct
public void init(){
id= resolve("id");
}
Voulez-vous lancer une requête GET ou POST? UICommand est toujours en POSTE, mais ça à l'air/vous ressemble plutôt souhaitez OBTENIR.
Eh bien, je suppose que OBTENIR serait plus approprié dans ce cas, mais je suis aussi ok avec un POSTE de travail.
Eh bien, je suppose que OBTENIR serait plus approprié dans ce cas, mais je suis aussi ok avec un POSTE de travail.
OriginalL'auteur Mateusz Dymczyk | 2010-07-19
Vous devez vous connecter pour publier un commentaire.
Ont un coup d'oeil à cet article sur la communication dans le JSF, par BalusC
f:param
ne fonctionne qu'avech:commandLink
eth:outputLink
.Vous pouvez utiliser un input caché:
Puis dans vos faces-config, je suppose que c'est la portée de la requête. Si vous utilisez les annotations de JSF2, vient de traduire ce que le bon annotations.
Vous devez bien évidemment d'avoir des getters et setters pour ce champ dans le backing bean.
ou d'essayer de "peindre" le lien, comme un bouton grâce à CSS.
OriginalL'auteur pakore
À moins que mon JSF est très rouillé, l'attribut action sur un bouton de commande ou de la commande de liaison est utilisé pour spécifier la chaîne de résultats définis dans vos faces-config-nav fichier, ou il devrait point d'une méthode sur le haricot qui retourne un résultat (ou de rediriger/whatever).
Dans votre cas, si vous souhaitez rediriger vers une autre page... vous devez définir que dans votre fichier de configuration, comme un lien de navigation (avec
redirect
si nécessaire). Puis dans votre bouton d'action, vous devriez avoir quelque chose comme...
Comme une part, le
<f:atribute>
balise de travail, mais il ne l'attribut sur le composant. Donc, si vous avez le bouton de commande dans votre bean, vous pourriez être en mesure d'obtenir la valeur de l'attribut par son nom. Pour transmettre une demande de param, utilisez le champ caché technique comme pakore mentionnéOriginalL'auteur Java Drinker