Question

J'utilise éclipse 3.6.2 (Helios), Tomcat 7, MyFaces 1.2.9

Je n'ai aucun problème quand j'utilise f: param dans le h: commandLink mais quand je mets f: h en param: commandButton il ne fonctionne pas. quel est le problème?

cet exemple beau travail:

<h:commandLink value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandLink>

mais il ne fonctionne pas

<h:commandButton value="Click here" action="#{myBean.action}">
<f:param name="parameterName1" value="parameterValue1" />
<f:param name="parameterName2" value="parameterValue2" />
</h:commandButton>
Était-ce utile?

La solution

Dans 1.x JSF, le <f:param> est pris en charge dans <h:commandLink>, <h:outputLink> et <h:outputFormat>, pas <h:commandButton>. Ce soutien est seulement dans JSF 2.0 et plus récent.

Vous avez au moins 4 options:

  1. Utilisez <h:commandLink> à la place. Si nécessaire utiliser le style CSS pour qu'il ressemble à un bouton. Voir un exemple aussi JSF commandButton URL paramètres .

  2. Utilisez <f:attribute> ou <f:setPropertyActionListener> à la place. Voir aussi Communication dans JSF .

  3. les passer comme arguments de méthode action="#{myBean.action('param1', 'param2')}". Tomcat 7 est un servlet 3,0 conteneur qui supporte EL 2,2 lequel le passage d'arguments de méthode dans les supports de virage. Vous ne devez vous assurer que votre web.xml est déclarée conforme Servlet 3.0. Voir aussi de paramètres avec par Invocation EL dans JSF 1.2 .

  4. Mise à niveau vers JSF 2.0. Il offre tant d'avantages sur JSF 1.x. Voir aussi de JSF 1.2 Migration à JSF 2.0 Communication dans JSF 2.0 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top