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 :

[image & passage de paramettre] Sos svp !


Sujet :

JSF Java

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 58
    Points : 40
    Points
    40
    Par défaut [image & passage de paramettre] Sos svp !
    Bonsoir,

    voila j'ai un tableau de données et dans la dernierre colone je dois avoir un picto (image de crayon) et normalement quand je clique sur le picto une action doit avoir lieu avec un passage de paramettre mais j'arrive pas le faire avec jsf

    j'ai essayer avec un commandButton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:commandButton value="value" id="id" image="img/modifier.gif" action="#{PageBean.redirectSiegeAction}" >
    	<f:param name="idSiege" value="#{sig.code}"/>
    </h:commandButton>
    mais le parametre ne s'envoie pas!!

    Comment je peux faire ca ??

    Merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 189
    Points : 2 336
    Points
    2 336
    Par défaut
    ca bug pas mal apparement avec les command button essaye avec un commandLink

    de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <h:commandLink id="lnkDetail" action="#{actionGui.detail}">
      <h:graphicImage id="imgDetail" value="/images/view.gif" 
           alt="#{text.common_detail}" 
          style="border-style:none" />
    <f:param name="actionId" value="#{row.actionId}" />
    <f:param name="marketId" value="#{row.id.idMarket}" />				
    <f:param name="actionTypeId" value="#{row.actionTypeId}" />			</h:commandLink>
    Citation Envoyé par maximus001ma
    Bonsoir,

    voila j'ai un tableau de données et dans la dernierre colone je dois avoir un picto (image de crayon) et normalement quand je clique sur le picto une action doit avoir lieu avec un passage de paramettre mais j'arrive pas le faire avec jsf

    j'ai essayer avec un commandButton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <h:commandButton value="value" id="id" image="img/modifier.gif" action="#{PageBean.redirectSiegeAction}" >
    	<f:param name="idSiege" value="#{sig.code}"/>
    </h:commandButton>
    mais le parametre ne s'envoie pas!!

    Comment je peux faire ca ??

    Merci d'avance

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour, je suis débutant en JSF et j'ai également un problème pour passer une valeur lorsque je clique sur une image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h:form>
    		<h:panelGrid columns="2" styleClass="dataInput">
    			<h:inputHidden value="4" binding="{VideoStateFullActions.img}"/>
    			<h:commandLink id="submit" action="#{VideoStateFullActions.activer}">
    				<h:graphicImage url="\\srv-arg-stream\nuxeoflv\storyboardtest\_0.png"/>
    			</h:commandLink>
    		</h:panelGrid>
    		</h:form>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public int getImg(){
    		log.info("appel de getImg");
    		return img;
    	}
     
    	public void setImg(int img) {
    		log.info("appel de setImg)");
    		this.img=img;
    	}
    Lorsque je remplace le inputHidden par un inputText avec value="{VideoStateFullActions.img}", le paramètre que je rentre passe bien, mais je voudrais que cette valeur ne soit pas à rentrer par l'utilisateur et qu'elle soit automatiquement envoyer lorsque je clique sur l'image. C'est pourquoi je voudrais utiliser un inputHidden mais comment faire le lien avec l'attribut de mon Bean. Je pensais que binding servait à ça mais apparement ça ne fonctionne pas.

    Voici l'erreur qu'il me retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/nuxeo].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
    javax.el.PropertyNotWritableException: /incl/tabs/video_view.xhtml @30,68 binding="{VideoStateFullActions.img}": Illegal Syntax for Set Operation

  4. #4
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Pour ton erreur, il s'agit d'une erreur d'expression EL.
    Dans ton binding, tu mets binding="{VideoStateFullActions.img}". Il manque le # au début de l'expression, qui devrait donc être binding="#{VideoStateFullActions.img}".
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    merci pour l'erreur bête...

    malheureusement, ça ne fonctionne toujours pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    javax.faces.FacesException: javax.el.ELException: /incl/tabs/video_view.xhtml @30,69 binding="#{VideoStateFullActions.img}": Can't set property 'img' of type 'int' on class 'org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$1802e5e' to value 'javax.faces.component.html.HtmlInputHidden@5e50d4'.
    	at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:216)

  6. #6
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Ok. Pourquoi tu utilises le binding d'ailleurs sur ton inputHidden ?

    Ne te suffit-il pas de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <h:inputHidden name="monAttribut" value="#{VideoStateFullActions.img}"/>
    ?

    Je pense toutefois qu'il est préférable de procéder autrement pour donner des arguments à un appel de méthode via un clic de souris (voir ce qui est expliqué plus haut).
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  7. #7
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    <f:param name="img" value="#{VideoStateFullActions.img}" />

    En cliquant sur mon image, je voudrais que l'attribut img de mon bean prenne la valeur entière que je veux. Mais ce que je ne comprend pas, aussi bien avec un inputHidden qu'un param, c'est l'endroit où je dois spécifier cette valeur.

    <f:param name="img" value="4" />
    <f:param name="#{VideoStateFullActions.img}" value="4" />
    <f:param name="4" value="#{VideoStateFullActions.img}" />

    rien de tout celà ne fonctionne, idem pour le inputHidden

    comment faire ???

  8. #8
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Une solution qui devrait marcher. Je fais ça avec des commandButton, mais ça doit marcher avec des commandLink.

    La page XHTML ou JSP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <h:commandLink>
        <h:graphicImage .../>
        <f:setPropertyActionListener target="#{myBean.myAction}" value="42"/>
    </h:commandLink>
    Le bean :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        ...
        public void setMyAction(String value) {
            // Ici, la méthode est appelée quand l'utilisateur a cliqué sur le link (l'image).
            // value vaudra ici "42".
        }
    Cela te convient-il ?
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  9. #9
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    value doit-il nécessairement être une String ?

  10. #10
    Rédacteur
    Avatar de romaintaz
    Homme Profil pro
    Java craftsman
    Inscrit en
    Juillet 2005
    Messages
    3 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Java craftsman
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2005
    Messages : 3 790
    Points : 7 275
    Points
    7 275
    Par défaut
    Non

    Tu peux lui donner n'importe quoi (un Integer, un Object, une String, etc.).

    A noter que je ne suis pas sûr que tu puisses lui donner un int, mais dans le pire des cas, tu pourras lui donner un Integer. Donc c'est pas très grave tout ça :o)
    Nous sommes tous semblables, alors acceptons nos différences !
    --------------------------------------------------------------
    Liens : Blog | Page DVP | Twitter
    Articles : Hudson | Sonar | Outils de builds Java Maven 3 | Play! 1 | TeamCity| CitConf 2009
    Critiques : Apache Maven

  11. #11
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ERROR [STDERR] 23 août 2007 15:29:56 com.sun.faces.lifecycle.LifecycleImpl phase
    ATTENTION: executePhase(INVOKE_APPLICATION 5,org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$CacheRenderKit@1d2fbb5) threw exception
    javax.faces.FacesException: /incl/tabs/video_view.xhtml @32,83 target="#{VideoStateFullActions.img}": Can't set property 'img' of type 'java.lang.Integer' on class 'org.jboss.seam.intercept.Proxy$$EnhancerByCGLIB$$e34ac0f5' to value '4'.

    Je ne comprend pas, le <f:setPropertyActionListener... semble faire exactement ce que je veux pourtant.
    Mais j'obtiens la même erreur que ce soit avec un int ou un Integer.
    Merci beaucoup quand même pour ton aide.

Discussions similaires

  1. Agrandir une image au passage de la souris
    Par matika dans le forum C++Builder
    Réponses: 7
    Dernier message: 09/03/2006, 00h10
  2. affichage image après passage de la souris sur bouton
    Par nerser dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/01/2006, 22h53
  3. Réponses: 32
    Dernier message: 19/11/2005, 19h26

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