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 :

Problème AJAX et JSF


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut Problème AJAX et JSF
    Bonsoir,

    J'ai un petit problème, sans introduite la notion d'Ajax dans mon projet, tout fonctionne. Avec Ajax, je n'obtiens pas les résultats attendus. Mes connaissances d'Ajax sont très minimes.
    Voilà, je crée un Bean = InscriptionBean et un BeanControleur = ConformerInscription. je n'utilise que tomee, eclipse, JSF 2.2 et l'api myfaces-api-2.1.1.jar et api primefaces.
    voilà mon code de inscription.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
     
                            Enter your login :
    				<h:inputText id="login" value="#{adhesion.login}"
    				label="Votre Login : " required="true"
    				requiredMessage="Please enter your login."
    				validatorMessage="la longueur doit être au minimum de 4 caractères.">
    				<f:validateLength minimum="4" />
    			</h:inputText>
     
    			<p:watermark for="login" />
    			<p:message for="login" />
     
    				Enter your Email :
    				<h:inputText id="email" value="#{adhesion.email}"
    				label="Votre email : " required="true"
    				requiredMessage="Please enter your email address."
    				validatorMessage="Invalid email format.">
    				<f:validateRegex
    					pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
    			</h:inputText>
    			<p:watermark for="email"/>
    			<p:message for="email" />
    			<h:commandButton value="Adhérer">
    				<f:ajax execute="login" render="output" />
    				<f:ajax execute="email" render="output"/>
    			</h:commandButton>
    			<h:outputText id="output" value="#{confirmerInscription.adhesionUser}"/>
    voilà mon code de Controleur du bean :
    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
     
    @Named("confirmerInscription")
    @SessionScoped
    public class ConfirmerInscription {
     
    	@ManagedProperty(value="#{adhesion}")
    	private InscriptionBean inscription;
     
     
    	public String getAdhesionUser(){
     
    		if(inscription.getEmail() != null && inscription.getLogin() != null){
    			inscription = inscription.inscrire();
    			return "";
    		}else{
    			return "Ajax message : Bienvenu " + inscription.getLogin();
    		}
    	}
    }
    l'erreur rencontré est : target unreachable identifier resolved to null

    Merci de toute aide ou conseil car là ça fait deux jours que je suis sur le même problème et je n'avance pas du tout.

    avatar7575

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    C'est typiquement le message que l'on a lorsque l'on a pas de bean.xml !
    En as tu un ?
    Si c'est pas le cas il en faut un dans le répertoire META-INF/classes ou WEB-INF.
    Ce ficher peut être vide ou avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
    </beans>
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut
    Bonjour,

    Je vous remercie pour la réponse. je venais de vérifier mais je constate que e fichier beans.xml existe.
    Donc j'ai changé le code et voilà ce que ça donne :

    code classe bean = InscriptionBean
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    public class InscriptionBean implements Serializable{
     
    	private static final long serialVersionUID = 1L;
     
    	private String login;
    	private String email;
    	private boolean conditionsGeneralesApprouvees;
    	private Date creation;
     
     
    	public InscriptionBean(){
    		this.email = null;
    		this.login =  null;
    		this.creation = null;
    	}
    	public String getLogin() {
    		return login;
    	}
     
    	public void setLogin(String login) {
     
    		this.login = login;
    	}
     
    	public String getEmail() {
    		return email;
    	}
     
    	public void setEmail(String email) {
    		this.email = email;
    	}
     
    	public Date getCreation() {
    		return creation;
    	}
     
    	public boolean isConditionsGeneralesApprouvees() {
    		return conditionsGeneralesApprouvees;
    	}
     
    	public void setConditionsGeneralesApprouvees(boolean conditionsGeneralesApprouvees) {
    		this.conditionsGeneralesApprouvees = conditionsGeneralesApprouvees;
    	}
     
    	public void inscrire(){
     
    			this.creation = new Date();
     
    	}
     
    	/*public String getRegister(){
     
     
    		if(this.login != null && this.email != null){
    			this.inscrire();
    		}
    		if(this.login != null && this.email != null && creation != null){
    			return "inscriptionOK";
    		}else{
    			return "inscription";
    		}
    	}*/
    }
    code de la classe controleurBean = ConfirmerInscription
    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
    38
    39
    40
    41
     
    public class ConfirmerInscription implements Serializable{
     
     
     
    	private static final long serialVersionUID = -3509281626450627639L;
     
    	@ManagedProperty(value="#{user}")
    	private InscriptionBean inscription;
     
    	public ConfirmerInscription(){
    		this.inscription = new InscriptionBean();
    	}
    	public ConfirmerInscription(InscriptionBean inscription){
    		this.inscription = inscription;
    	}
    	public void setInscriptionBean(InscriptionBean inscription){
    		this.inscription = inscription;
    	}
     
    	public InscriptionBean getInscription() {
    		return inscription;
    	}
     
    	public String confirmer(InscriptionBean inscription){
     
    		//ConfirmerInscription confirmerInscription = new ConfirmerInscription(inscription);
    		if(inscription.getLogin() != null && inscription.getEmail() != null){
    			//System.out.println("objet inscription non nul maman");
    			inscription.inscrire();
    		}
     
    		if(inscription.getCreation() != null && inscription.getLogin() != null && inscription.getEmail() != null){
    			this.setInscriptionBean(inscription);
    			this.getInscription();
    			return "inscriptionOK";
    		}
     
    		return "inscription";
    	}
    }
    les deux classes sont déclarées dans faces-config.xml

    voilà la facelet :
    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
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!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:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui">
    <h:head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>Inscription user</title>
    </h:head>
    <h:body>
     
    	<h:form acceptcharset="UTF-8">
     
    		<h:panelGrid columns="2">
    			Enter your login :
    			<h:inputText id="login" value="#{user.login}" required="true"
    				requiredMessage="Please enter your login."
    				validatorMessage="la longueur doit être au minimum de 4 caractères.">
    				<f:validateLength minimum="4" />
    			</h:inputText>
    			Enter your email :
    			<h:inputText id="email" value="#{user.email}" required="true">
    				<f:validateRegex
    					pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
    			</h:inputText>
    		</h:panelGrid>
     
    		<h:commandButton value="Adhérer"
    			action="#{confirmerInscription.confirmer(user)}"/>
    	</h:form>
     
    </h:body>
    </html>
    voilà le message d'erreur affiché lors de l'exécution :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    mai 12, 2014 8:59:03 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
    Grave: Error Rendering View[/inscriptionBis.xhtml]
    java.lang.NullPointerException
    	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:225)
    	at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:225)
    	at org.apache.el.parser.AstValue.getValue(AstValue.java:173)
    	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:185)
    	at org.apache.webbeans.el22.WrappedValueExpression.getValue(WrappedValueExpression.java:70)
    	at com.sun.faces.facelets.el.ELText$ELTextVariable.toString(ELText.java:217)
    	at com.sun.faces.facelets.el.ELText$ELTextComposite.toString(ELText.java:157)
    	at com.sun.faces.facelets.compiler.CommentInstruction.write(CommentInstruction.java:77)
    	at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
    	at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:183)
    	at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:744)
     
    mai 12, 2014 8:59:03 PM com.sun.faces.context.ExceptionHandlerImpl log
    1100: JSF1073 : java.lang.NullPointerException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=null
    est ce que quelqu'un pourrait m'aider à voir où est l'erreur car pour moi il n'y a pas d'erreur. tout ma paraît logique.
    Merci pour votre aide.

    Avatar7575

  4. #4
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Tu as oublié la la balise <f:view> a l'intérieur de ton body, donc jsf ne sais pas quoi interpréter, d'où l'erreur.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut
    Bonjour,

    Merci pour la réponse. le problème est que je ne sais pas comment l'introduire dans le formulaire même après toute une nuit de recherche sur le net. Du coup le problème reste le même. (j'utilise CDI, JSF 2.2, eclipse, tomee).
    j'utilise aussi Ajax.
    sinon, voilà le nouveau code :
    classe Bean :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    @Named("user")
    @SessionScoped
    public class InscriptionBean implements Serializable {
     
    	private static final long serialVersionUID = 1L;
     
    	private String login;
    	private String email;
    	private boolean conditionsGeneralesApprouvees;
    	private Date creation;
     
    	public String getLogin() {
    		return login;
    	}
     
    	public void setLogin(String login) {
     
    		this.login = login;
    	}
     
    	public String getEmail() {
    		return email;
    	}
     
    	public void setEmail(String email) {
    		this.email = email;
    	}
     
    	public Date getCreation() {
    		return creation;
    	}
     
    	public boolean isConditionsGeneralesApprouvees() {
    		return conditionsGeneralesApprouvees;
    	}
     
    	public void setConditionsGeneralesApprouvees(
    			boolean conditionsGeneralesApprouvees) {
    		this.conditionsGeneralesApprouvees = conditionsGeneralesApprouvees;
    	}
     
    	public void inscrire() {
     
    		this.creation = new Date();
     
    	}
     
    	public void traiter() {
     
    		if (this.login != null && this.email != null) {
    			this.inscrire();
    		}
    		if (this.login != null && this.email != null && creation != null) {
    			resultat = "Bienvenue " + this.getLogin()
    					+ " , votre inscription a bien été prise en compte le ";// +
    																			// this.getCreation();
    		}
    	}
    classe ControleurBean :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    @Named
    @SessionScoped
    public class ConfirmerInscription implements Serializable {
     
    	private static final long serialVersionUID = -3509281626450627639L;
     
    	@ManagedProperty(value="#{user}")
    	private InscriptionBean inscription;
     
    	private String resultat;
     
    	public void setInscriptionBean(InscriptionBean inscription) {
    		this.inscription = inscription;
    	}
     
    	public InscriptionBean getInscription() {
    		return inscription;
    	}
     
     
    	  public String getResultat() { return resultat; }
     
    	  public void setResultat(String resultat) { this.resultat = resultat; }
     
    	public void traiter() {
    		// String chaine=this.confirmer(inscription);
    		if (this.getInscription().getLogin() != null && this.getInscription().getEmail() != null) {
     
    			inscription.inscrire();
    		}
     
    		if (this.getInscription().getLogin() != null && this.getInscription().getEmail() != null
    				&& this.getInscription().getEmail() != null) {
     
    			// this.setInscriptionBean(inscription);
    			// this.getInscription();
    			resultat = "Bienvenue "
    					+ this.getInscription().getLogin() +" , votre inscription a bien été prise en compte le "; 
     
    		}
    	}
     
    	public void reset(){
     
    		inscription = null;
    		resultat = null;
    	}
    }
    voilà la facelet :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <?xml version="1.0" encoding="UTF-8" ?>
    <!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:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui">
    <h:head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>Inscription user</title>
    </h:head>
    <h:body>
     
    	<h:form acceptcharset="UTF-8">
     
    		<h:panelGrid columns="3">
    			Enter your login :
    			<h:inputText id="login" value="#{user.login}" required="true"
    				 size="60">
    				<f:validateLength minimum="4" />
                                     <f:validateRegex pattern="\\S+" />
    			</h:inputText>
    			<h:message for="login" style="color:red" />
    			Enter your email :
    			<h:inputText id="email" value="#{user.email}" required="true"
    				size="60">
    				<f:validateRegex
    					pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
    			</h:inputText>
    			<h:message for="email" style="color:red" />
    		</h:panelGrid>
     
    		<h:commandButton value="Adhérer"
    			action="#{confirmerInscription.traiter()}">
     
    			<f:ajax execute="@form" render="@form" />
    		</h:commandButton>
    		<h:commandButton value="Reset" action="#{confirmerInscription.reset()}"
    			style="margin:20px">
    			<f:ajax execute="@form" render="@form" />
    		</h:commandButton>
     
    		<div style="color: green">
    			<h:outputText value="#{confirmerInscription.resultat}" />
    			<h:outputLabel
    				value="#{confirmerInscription.inscriptionBean.creation}">
    				<f:convertDateTime pattern="dd MMMMM yyyy 'à' HH:mm:ss" for="user" />
    			</h:outputLabel>
    		</div>
     
    	</h:form> 
     
    </h:body>
    </html>
    j'ai déclaré un fichier MyMessage.properties pour gérer les messages d'erreur personnalisé.
    Tout me paraît sans erreur sauf que ajax ne fonctionne pas (car le bouton reset ne fait pas que sa propre fonction, des fois qu'on je clique dessus, il envoie un message d'erreur alors qu'il est censé tout mettre à zéro.
    (A noter que je constate cela qu'on je n'utilise pas de controleur et que je mets tout dans le bean : pas de modèle MVC).
    par contre qu'on j'utilise les codes de dessus (modèle mvc: controleur et bean avec injection du bean dans le controleur). rien ne s'affiche et j'ai le message d'erreur déclaré dans mon ancien message au dessus. (problème grave view;;

    est ce que quelqu'un a une solution ou un conseil pour ce problème .
    Merci d'avance pour votre aide même minime. ça pourrait me débloquer car ça fait 4 jour que je suis la dessus.

    Avatar7575

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    @ManagedProperty est une annotation de JSF, pas de CDI, tu devrais utiliser @Inject
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre émérite
    Avatar de Cafeinoman
    Homme Profil pro
    Couteau suisse d'une PME
    Inscrit en
    Octobre 2012
    Messages
    628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Couteau suisse d'une PME

    Informations forums :
    Inscription : Octobre 2012
    Messages : 628
    Par défaut
    Citation Envoyé par avatar7575 Voir le message
    Bonjour,

    classe ControleurBean :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    @Named
    @SessionScoped
    public class ConfirmerInscription implements Serializable {
    
    	private static final long serialVersionUID = -3509281626450627639L;
    
    	@Inject //Utilise Inject pour injecter le bean via CDI; comme il est déjà nommé user dans l'annotation @Named, pas besoin de le refaire;
    	private InscriptionBean inscription;
    
    	private String resultat;
    
    	public void setInscriptionBean(InscriptionBean inscription) {
    		this.inscription = inscription;
    	}
    
    	public InscriptionBean getInscription() {
    		return inscription;
    	}
    
    	
    	  public String getResultat() { return resultat; }
    	  
    	  public void setResultat(String resultat) { this.resultat = resultat; }
    	 
    	public void traiter() {
    		// String chaine=this.confirmer(inscription);
    		if (this.getInscription().getLogin() != null && this.getInscription().getEmail() != null) {
    
    			inscription.inscrire();
    		}
    
    		if (this.getInscription().getLogin() != null && this.getInscription().getEmail() != null
    				&& this.getInscription().getEmail() != null) {
    
    			// this.setInscriptionBean(inscription);
    			// this.getInscription();
    			resultat = "Bienvenue "
    					+ this.getInscription().getLogin() +" , votre inscription a bien été prise en compte le "; 
    			
    		}
    	}
    	
    	public void reset(){
    		
                    //toujours utiliser les getters et setters
    		this.setInscription(null);
    		this.setResultat(null);
    	}
    }
    voilà la facelet :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    <?xml version="1.0" encoding="UTF-8" ?>
    <!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:h="http://java.sun.com/jsf/html"
    	xmlns:f="http://java.sun.com/jsf/core"
    	xmlns:p="http://primefaces.org/ui">
    <h:head>
    	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    	<title>Inscription user</title>
    </h:head>
    <h:body>
          <f:view> <!-- debut de la partie gérée par JSF pour le rendu>
    
    	<h:form acceptcharset="UTF-8">
    
    		<h:panelGrid columns="3">
    			Enter your login :
    			<h:inputText id="login" value="#{user.login}" required="true"
    				 size="60">
    				<f:validateLength minimum="4" />
                                     <f:validateRegex pattern="\\S+" />
    			</h:inputText>
    			<h:message for="login" style="color:red" />
    			Enter your email :
    			<h:inputText id="email" value="#{user.email}" required="true"
    				size="60">
    				<f:validateRegex
    					pattern="^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9]+)*(\.[A-Za-z]{2,})$" />
    			</h:inputText>
    			<h:message for="email" style="color:red" />
    		</h:panelGrid>
    		
    		<h:commandButton value="Adhérer"
    			action="#{confirmerInscription.traiter()}">
    
    			<f:ajax execute="@form" render="@form" />
    		</h:commandButton>
    		<h:commandButton value="Reset" action="#{confirmerInscription.reset()}"
    			style="margin:20px">
    			<f:ajax execute="@form" render="@form" />
    		</h:commandButton>
    
    		<div style="color: green">
    			<h:outputText value="#{confirmerInscription.resultat}" />
    			<h:outputLabel
    				value="#{confirmerInscription.inscriptionBean.creation}">
    				<f:convertDateTime pattern="dd MMMMM yyyy 'à' HH:mm:ss" for="user" />
    			</h:outputLabel>
    		</div>
    
    	</h:form> 
             
                 </f:view> <!-- fin de la partie gérée par JSF pour le rendu>
    
    </h:body>
    </html>
    Essaye avec les modifications que je t'ai mis en gras et dit nous si ça marche...

Discussions similaires

  1. [Info] AJAX et JSF
    Par estampille dans le forum Struts 1
    Réponses: 13
    Dernier message: 10/03/2015, 10h50
  2. [AJAX] AJAX / PHP login
    Par forst dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/12/2006, 18h34
  3. [AJAX] ajax et fonction javascript
    Par locs dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/08/2006, 16h56
  4. [AJAX] Utilisation AJAX avec IE
    Par Death83 dans le forum Général JavaScript
    Réponses: 42
    Dernier message: 01/07/2006, 20h33
  5. [AJAX] Ajax et ASP.NET
    Par boleduch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/03/2006, 16h15

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