IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JSF Java Discussion :

Tag personnalisé methodNotFound


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Par défaut Tag personnalisé methodNotFound
    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.

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Salut,

    j'avais eu un problème similaire.
    Je ne sais plus comment j'avais résolu, mais voici le résultat final de mon travail :

    l'usage de mon tag :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            <etrs:selector value="#{listeModelesBean.facade.readAll()}" 
                           widgetVar="modeleSelector"
                           display="nom"
                           key="id"
                           target="#{listeModelesBean.selected}" 
                           update=":mainForm" />
    et la définition de ce tag :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <?xml version="1.0" encoding="UTF-8"?>
    <ui:composition 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:p="http://primefaces.org/ui"
                    >
     
        <h:form id="selectorForm">
            <p:dialog modal="true" widgetVar="#{widgetVar}" height="500">  
                <p:dataTable var="item" 
                             value="#{value}" 
                             rowKey="#{item[key]}"
                             selectionMode="single"
                             selection="#{target}"
                             >
     
                    <p:column headerText="item">
                        <h:outputText value="#{item[display]}" />
                    </p:column>       
     
     
                    <f:facet name="footer">  
                        <p:commandButton value="Selectionner" 
                                         icon="ui-icon-search"  
                                         update="#{update}" 
                                         oncomplete="#{widgetVar}.hide()"
                                         />  
                    </f:facet>  
                </p:dataTable>
            </p:dialog>
        </h:form>
     
    </ui:composition>

  3. #3
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    ce que je comprend pas dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <plop:effButton backingBean="helloBean" action="retourValidation" value="pouett !" />
    c'est que l'attribut action devrait être "valider" et pas "retourValidation" ... si tu chercher à déclencher "la méthode public String valider()" sur ton helloBean.

Discussions similaires

  1. Backup RMAN avec un TAG personnalisé sous windows
    Par smaildba dans le forum Administration
    Réponses: 2
    Dernier message: 13/01/2012, 10h32
  2. Tag personnalisé et champs disabled
    Par icexplorer dans le forum Struts 1
    Réponses: 1
    Dernier message: 05/10/2010, 20h06
  3. inclure tag jsp dans tag personnalisé
    Par nawara3003 dans le forum Taglibs
    Réponses: 0
    Dernier message: 27/01/2010, 16h41
  4. Réponses: 8
    Dernier message: 07/12/2009, 14h26
  5. [Custom Tags] problème tag personnalisé
    Par emsi2009 dans le forum Taglibs
    Réponses: 0
    Dernier message: 21/08/2009, 20h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo