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

Seam Java Discussion :

Impossible de récuperer la valeur d'un champ avec redered et Rerender


Sujet :

Seam Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Par défaut Impossible de récuperer la valeur d'un champ avec redered et Rerender
    Salut à tous.

    Dans une appli seam j'ai un comportement que je n'arrive pas à expliquer. J'ai mis mon post dans la partie seam du forum car mon projet est en seam mais je ne suis pas sur que le probleme vienne de la.

    Alors j'ai fait une page pour mettre en evidence mon probleme:

    la page xhtml:
    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
     
    <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
    	xmlns:rich="http://richfaces.org/rich" template="layout/template.xhtml" xmlns:a4j="http://richfaces.org/a4j">
     
    	<ui:define name="breadcrumb">
    		<ui:include src="layout/menuBreadcrumb.xhtml">
    		</ui:include>
    	</ui:define>
     
    	<ui:define name="body">
    		<h:form id="testForm">
    			<rich:panel id="allTable">
    				<h:outputText value="test page" />
    				<br />
    				<h:inputText label="test" value="#{myDebugHome.inputTest}">
    					<a4j:support event="onchange" reRender="allTable" />
    				</h:inputText>
    				<br />
    				<h:inputText label="test2" value="#{myDebugHome.inputTest2}" rendered="#{myDebugHome.inputTest!=null}" />
    				<br />
    				<h:commandButton action="#{myDebugHome.myMethode}" value="Submit" />
    			</rich:panel>
    		</h:form>
    	</ui:define>
    </ui:composition>
    le home:
    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
    35
    36
    37
     
    package be.xxxxxx.action;
     
    import java.io.Serializable;
     
    import org.jboss.seam.ScopeType;
    import org.jboss.seam.annotations.Name;
    import org.jboss.seam.annotations.Scope;
     
    @Name("myDebugHome")
    @Scope(ScopeType.CONVERSATION)
    public class MyDebugHome implements Serializable {
     
    	private static final long serialVersionUID = 4105373009248019961L;
    	public String inputTest;
    	public String inputTest2;
     
    	public void myMethode() {
    		System.out.println("***************************** in myMethode");
    		System.out.println("inputTest: " + inputTest);
    		System.out.println("inputTest2: " + inputTest2);
    	}
     
    	public String getInputTest() {
    		return inputTest;
    	}
    	public void setInputTest(String inputTest) {
    		this.inputTest = inputTest;
    	}
    	public String getInputTest2() {
    		return inputTest2;
    	}
    	public void setInputTest2(String inputTest2) {
    		this.inputTest2 = inputTest2;
    	}
     
    }
    et le resultat quand j'appel ma methode:

    17:03:13,039 INFO [STDOUT] ***************************** in myMethode
    17:03:13,040 INFO [STDOUT] inputTest: 456456
    17:03:13,041 INFO [STDOUT] inputTest2: null
    Ma question est pourquoi mon champs inputTest2 reste vide?

    Quand je ne fait pas de reRender et je ne met pas de rendered ca marche mais c'est pas ca m'aide pas.

    Si qqun sait m'expliquer ca ou me dire comment faire pour recuperer ma valeur inputTest2 dans mon home je suis serait tres reconnaisant.

    merci

  2. #2
    Membre chevronné

    Inscrit en
    Février 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 122
    Par défaut
    pourquoi tu as mis le a4j:support sur le onchange de l'inputtext ?
    ce que tu cherches c'est rafraichir en ajax, si je comprends bien, donc j'aurais mis le a4j:support sur le onclick du boutton, avec un a4j:commandButton au lieu d'un h:commandButton, le a4j:commandButton est fait pour les traitements ajax.

    si ça marche pas essai de faire ton reRender sur cette syntaxe nomduform:idduchamp

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Par défaut
    Citation Envoyé par Mikrob Voir le message
    pourquoi tu as mis le a4j:support sur le onchange de l'inputtext ?
    ce que tu cherches c'est rafraichir en ajax, si je comprends bien, donc j'aurais mis le a4j:support sur le onclick du boutton, avec un a4j:commandButton au lieu d'un h:commandButton, le a4j:commandButton est fait pour les traitements ajax.

    si ça marche pas essai de faire ton reRender sur cette syntaxe nomduform:idduchamp
    Non le but c'est que le 2eme champs apparaissent une fois que le premier est completé.

    Pour faire un formulaire dynamique...

    Le boutton c'est pour quand on a fini pour tout envoyer (peut importe que ce soit en ajax ou en submit c'est quand meme pour changer de page apres.).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 75
    Par défaut
    bon bien probleme de scope:

    j'ai rien défini donc par defaut c'est conversation mais comme j'ai pas mis de begin-conversation dans le page.xml il crée tout le temps un nouveau bean.

    j'ai vu ca en mettant un system.out.ln(this) sur le constructeur de la class.

    suffit de mettre @Scope(PAGE)

    ou d'ajouter le <begin-conversation join="true" flush-mode="MANUAL" /> dans le page.xml




    2 jours pour trouver 1 ligne

  5. #5
    Membre chevronné

    Inscrit en
    Février 2007
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 122
    Par défaut
    Citation Envoyé par SiX-P4cK Voir le message
    bon bien probleme de scope:

    j'ai rien défini donc par defaut c'est conversation mais comme j'ai pas mis de begin-conversation dans le page.xml il crée tout le temps un nouveau bean.

    j'ai vu ca en mettant un system.out.ln(this) sur le constructeur de la class.

    suffit de mettre @Scope(PAGE)

    ou d'ajouter le <begin-conversation join="true" flush-mode="MANUAL" /> dans le page.xml




    2 jours pour trouver 1 ligne
    Sur la classe que tu nous as donné le scope est précisé.
    fait gaffe avec le flush-mode en manual.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. récuperer la valeur d'un champs avec $_session
    Par zana74 dans le forum Langage
    Réponses: 3
    Dernier message: 20/08/2006, 17h52
  2. Réponses: 7
    Dernier message: 06/07/2006, 15h32
  3. Réponses: 5
    Dernier message: 24/05/2006, 14h04
  4. Réponses: 1
    Dernier message: 19/03/2006, 20h52
  5. Récuperer la valeur d'un champ d'un formulaire après onblur
    Par kerido dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 13/09/2005, 15h58

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