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 :

JSf-changevaluelistener :pb d'affichage du bean jsf


Sujet :

JSF Java

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut JSf-changevaluelistener :pb d'affichage du bean jsf
    bonjour,
    je travaille avec les technologie:jsf+spring+hibernate.
    j'essaie d'afficher les attributs d'un formulaire(id,nom,age,salaire) qui correspond a l'id choisi via SelectOnemenu.malheureusement la methode de l'evenement changevaluelistener fonctionne mal par exp:

    id=event.getNewValue.toString();
    employee= employeeService.getEmployee(id);//reussi
    log("le nom de client" +employee.getName());// il afiche le nom de l'employee
    this.setName(employee.getName());
    .................
    FacesContext.getCurrentInstance().RenderResponse();

    au niveau faces-config.xml j'ai:

    <managed-bean>
    <managed-bean-name>employeeBean</managed-bean-name>
    .....
    <managed-bean-scope>session<managed-property-scope>
    <managed-property>
    <managed-property-name>employeeService</managed-property-name>
    <managed-property-value>#{employeeService}<managed-property-value>
    </managed-property>

    resultat :les attribut ne sont pas affiché.

    j'attends vos suggestions.

    merci.

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Bonjour,
    pour mieux expliquer on probleme cité en haut.je veux faire la mise a jour d'un formulaire.
    le code de la view:
    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
     
    <h:form>
    <h:messages layout="table" styleClass="erreur" warnClass="error"/>
    <h:panelGrid columns="2">	
    <h:outputText value="#{messages.label_IdEmployee}" />
    <h:selectOneMenu id="id" value="#{employeeBean.id}" title= "select"
    valueChangeListener="#{employeeBean.onSelectId}" immediate ="true" onchange="submit()"  > 
    <f:selectItems value="#{employeeBean.listIdEmployee}"/>
    </h:selectOneMenu>
     
     
    <h:outputText  value="#{messages.label_NameEmployee}" />
    <h:inputText  id="name" required="true"  value="#{employeeBean.name}"/>
     
    <h:outputText  value="#{messages.label_AgeEmployee}" />
    <h:inputText  id="age" required="true"   value="#{employeeBean.age}"/>
     
    <h:outputText  value="#{messages.label_SalaryEmployee}" />
    <h:inputText  id="salary" required="true"   value="#{employeeBean.salary}"/>
     
    </h:panelGrid>
     
    <h:commandButton  action="#{employeeBean.doEdit}" value="#{messages.label_validate}" />	
    </h:form>
    le code du bean :EmployeeBean

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    public class EmployeeBean {
     
    	  public static final String OUTCOME_SUCCESS="success";
     
    //	injection du bean 
    	private EmployeeServiceImpl employeeService ;
     
    	/**
             * logger
             */
    	private static Log log = LogFactory.getLog(EmployeeBean.class);
         private Employee employee= new Employee();
     
     
    //	properties
    	private String id;
         private String name;
       private String age;
        private  String salary;
        private List<SelectItem> listIdEmployee;
     
           public EmployeeBean(){}
     
       getter & setter
    public List<SelectItem> getListIdEmployee() {
     
    List<SelectItem> listItems = new ArrayList<SelectItem>();
    List listObjects = new ArrayList();
     
    try {
    	listObjects =  employeeService.getEmployees();
     
    		} catch (Exception e) {
    			MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR,"", "");
    log.error("Erreur Hibernate lors de la r�cup�ration de l'objet Employee",e);
    		}
    		if (listObjects.isEmpty() == false){	
    		listItems.add(new SelectItem(""));
    		for (int i = 0; i < listObjects.size(); i++){
    				Employee emp = (Employee) listObjects.get(i);	
    				listItems.add(new SelectItem(emp.getId()));
    			}
    		}else{
    			listItems.add(new SelectItem(""));
    		}
     
    		return listItems;
    	}
     
    public void onSelectId(final ValueChangeEvent event) throws AbortProcessingException{
     
     
    	log.info(" Chargement du l'employee :" );
     
    	if (event.getNewValue().toString() != "") {
    	 this.id = event.getNewValue().toString();
     
            // Get the employee values and add in the form
            try {
     
     
          this.employee = (Employee) employeeService.getEmployee(id);
                    this.setName(employee.getName());
            	this.setAge(employee.getAge());
            	this.setSalary(employee.getSalary());
     
     
                FacesContext.getCurrentInstance().renderResponse();
            	log.info("*********** age client :" +employee.getAge()); 
     
                }
            	 catch (Exception e) {
                MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR, "erreur ", "");
                log.error("Erreur Hibernate lors de la récupération de l'objet Employee", e);
            }
     
    	}
    		else{
    				MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR,
    							"", "Enregistrement requis");
    			   throw new AbortProcessingException();
    				}	 
    }
    le resultat: c'est que la liste des id de l'employee est chargé dans le select mais en selectionnant l'id ,les autres attribut ne sont pas affichés dans le formulaire.

    j'attends tjs vos suggestions.
    merci.

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Citation Envoyé par infinity09 Voir le message
    Bonjour,
    pour mieux expliquer on probleme cité en haut.je veux faire la mise a jour d'un formulaire.
    le code de la view:
    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
     
    <h:form>
    <h:messages layout="table" styleClass="erreur" warnClass="error"/>
    <h:panelGrid columns="2">	
    <h:outputText value="#{messages.label_IdEmployee}" />
    <h:selectOneMenu id="id" value="#{employeeBean.id}" title= "select"
    valueChangeListener="#{employeeBean.onSelectId}" immediate ="true" onchange="submit()"  > 
    <f:selectItems value="#{employeeBean.listIdEmployee}"/>
    </h:selectOneMenu>
     
     
    <h:outputText  value="#{messages.label_NameEmployee}" />
    <h:inputText  id="name" required="true"  value="#{employeeBean.name}"/>
     
    <h:outputText  value="#{messages.label_AgeEmployee}" />
    <h:inputText  id="age" required="true"   value="#{employeeBean.age}"/>
     
    <h:outputText  value="#{messages.label_SalaryEmployee}" />
    <h:inputText  id="salary" required="true"   value="#{employeeBean.salary}"/>
     
    </h:panelGrid>
     
    <h:commandButton  action="#{employeeBean.doEdit}" value="#{messages.label_validate}" />	
    </h:form>
    le code du bean :EmployeeBean

    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    public class EmployeeBean {
     
    	  public static final String OUTCOME_SUCCESS="success";
     
    //	injection du bean 
    	private EmployeeServiceImpl employeeService ;
     
    	/**
             * logger
             */
    	private static Log log = LogFactory.getLog(EmployeeBean.class);
         private Employee employee= new Employee();
     
     
    //	properties
    	private String id;
         private String name;
       private String age;
        private  String salary;
        private List<SelectItem> listIdEmployee;
     
           public EmployeeBean(){}
     
       getter & setter
    public List<SelectItem> getListIdEmployee() {
     
    List<SelectItem> listItems = new ArrayList<SelectItem>();
    List listObjects = new ArrayList();
     
    try {
    	listObjects =  employeeService.getEmployees();
     
    		} catch (Exception e) {
    			MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR,"", "");
    log.error("Erreur Hibernate lors de la r�cup�ration de l'objet Employee",e);
    		}
    		if (listObjects.isEmpty() == false){	
    		listItems.add(new SelectItem(""));
    		for (int i = 0; i < listObjects.size(); i++){
    				Employee emp = (Employee) listObjects.get(i);	
    				listItems.add(new SelectItem(emp.getId()));
    			}
    		}else{
    			listItems.add(new SelectItem(""));
    		}
     
    		return listItems;
    	}
     
    public void onSelectId(final ValueChangeEvent event) throws AbortProcessingException{
     
     
    	log.info(" Chargement du l'employee :" );
     
    	if (event.getNewValue().toString() != "") {
    	 this.id = event.getNewValue().toString();
     
            // Get the employee values and add in the form
            try {
     
     
          this.employee = (Employee) employeeService.getEmployee(id);
                    this.setName(employee.getName());
            	this.setAge(employee.getAge());
            	this.setSalary(employee.getSalary());
     
     
                FacesContext.getCurrentInstance().renderResponse();
            	log.info("*********** age client :" +employee.getAge()); 
     
                }
            	 catch (Exception e) {
                MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR, "erreur ", "");
                log.error("Erreur Hibernate lors de la récupération de l'objet Employee", e);
            }
     
    	}
    		else{
    				MessageSupport.addMessage(FacesMessage.SEVERITY_ERROR,
    							"", "Enregistrement requis");
    			   throw new AbortProcessingException();
    				}	 
    }
    le resultat: c'est que la liste des id de l'employee est chargé dans le select mais en selectionnant l'id ,les autres attribut ne sont pas affichés dans le formulaire.voici le message figuré dans la console:

    juil. 2008 17:24:35 javabeat.bean.EmployeeBean onSelectId
    INFO: Chargement du l'employee :
    Hibernate: select employee0_.id as id0_0_, employee0_.Name as Name0_0_, employee0_.Age as Age0_0_, employee0_.Salary as Salary0_0_ from Employee employee0_ where employee0_.id=?
    4 juil. 2008 17:24:35 javabeat.bean.EmployeeBean onSelectId
    INFO: *********** age client :23
    4 juil. 2008 17:24:35 javabeat.bean.EmployeeBean getListIdEmployee
    INFO: *********** id client :
    Hibernate: select this_.id as id0_0_, this_.Name as Name0_0_, this_.Age as Age0_0_, this_.Salary as Salary0_0_ from Employee this_
    4 juil. 2008 17:24:35 javabeat.bean.EmployeeBean getListIdEmployee
    INFO: *********** id client :
    Hibernate: select this_.id as id0_0_, this_.Name as Name0_0_, this_.Age as Age0_0_, this_.Salary as Salary0_0_ from Employee this_

    j'attends tjs vos suggestions.
    merci.

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    test en ajoutant un biding à un composant Input et change la valeur directement du composant UI.
    Sinon si tu utilise de l'ajax, richfaces par exemple, c'est beaucoup plus simple.

Discussions similaires

  1. Réponses: 15
    Dernier message: 29/01/2014, 18h42
  2. Réponses: 2
    Dernier message: 18/07/2008, 11h58
  3. Bean JSF + arrayList
    Par aocorp dans le forum JSF
    Réponses: 1
    Dernier message: 21/08/2006, 09h23
  4. [JSF]Affichage de beans depuis une ArrayList dans une JSP
    Par adrien.nicolet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 05/06/2006, 17h33
  5. Réponses: 1
    Dernier message: 29/05/2006, 10h04

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