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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
<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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
public String valider(){...}
Lorsque je fais appel à cette méthode dans les composants jsf classiques la méthode est bien trouvée... Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.