Bonjour,
Je suis en train d'essayer de créer des composants personnalisés jsf.
Pour passer une action en paramètre d'un composant personnalisé étant un peu spéciale j'ai du suivre ce tuto : http://www.ibm.com/developerworks/ja...ry/j-facelets/
Voici la page xhtml de mon composant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<ui:composition>
<h:commandLink id="#{action}" action="#{backingBean[action]}" styleClass="button">
<h:outputText styleClass="pouet" value="#{value}" />
</h:commandLink>
</ui:composition>
</html> |
et voici comment je l'appelle dans ma facelet :
<plop:effButton backingBean="helloBean" action="retourValidation" value="pouett !" />
Le problème vient dufait que, lors du clic sur le lien ainsi créé, l'exception suivante est lancée :
javax.el.MethodNotFoundException: /WEB-INF/composants/boutonEff.xhtml @12,90 action="#{backingBean[action]}": Method not found: metierBean.valider()
alors que la méthode valider() est bien déclarée dans la classe MetierBean :
public String valider(){...}
Lorsque je fais appel à cette méthode dans les composants jsf classiques la méthode est bien trouvée... Par exemple :
1 2 3 4
|
<h:commandLink action="#{metierBean.valider}" styleClass="button">
<h:outputText styleClass="pouet" value="#{msgs.validate}" />
</h:commandLink> |
Avez-vous une idée de la provenance de cette exception ?
Merci d'avance de vos réponses.
Partager