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 1.1 + Ajax4JSF] a4j:commandButton ne rafraichis pas un dataTable


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut [JSF 1.1 + Ajax4JSF] a4j:commandButton ne rafraichis pas un dataTable
    Je me permets de relancer la discussion au cas où ! Car bien que j'ai pu avancer sur d'autres composantes, je reste bloquer... Merci de votre compréhension

    Bonjour,
    Je suis face à un probleme en JSF, j'utilise JSF 1.1 et Ajax4jsf sur un serveur Tomcat 6 (sans Richfaces : consignes m'ont été données de ne pas l'utiliser afin de ne pas allourdir l'application)
    J'arrive à faire fonctionner différents elements AJAX4JSF (selectOneMenu, ...)
    mais je n'arrive pas à faire un raffraichissement (sans rechargement de la page d'où utilisation d'Ajax4JSF)... d'un t:dataTable (tomw

    En utilisant un bouton h:commandButton, mes données sont bien enregistrés et mis à jour...
    Et avec a4j:commandButton, je n'y arrive pas... J'ai pourtant essayer plein de possibilités (mais je dois être un peu boulet) : <a4j:region>, <a4j:outputpanel> :
    dois-je encapsuler des forms ??? dois-je impérativement utiliser RichFaces ???... En tenant de tracer le cycle de vie de mes évenements, en appuyant sur le a4j:commandButton, je m'aperçois que je ne rentre pas dans la méthode

    Je suis un peu perdu... donc si vous avez des pistes (en observant mon code ci-dessous) vous me seriez d'une grande aide...

    JSF
    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
    85
    86
    87
    88
    89
    90
    91
    92
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="c"%>
    <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
    <%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
    <%@ taglib uri="https://ajax4jsf.dev.java.net/ajax" prefix="a4j"%>
     
    <c:subview id="editEmployeeView">
    	   <meta content="no-cache" http-equiv="Cache-Control" />
           <meta content="no-cache" http-equiv="Pragma" />
     
     
    	<h:form id="editEmployeeForm" >   
     
    		<t:inputHidden forceId="true" id="employeeId" value="#{employeesController.displayedEmployee.id}"></t:inputHidden>
    		<a4j:keepAlive beanName="employeesController" />
     
    			<h:messages  showDetail="true" />
     
    		<t:panelTabbedPane bgcolor="#FFFFCC"  id="tabEmployee" width="500" >
     
    			<t:panelTab id="tabSkills" label="#{msg.employee_skills}" >
    				<h:panelGrid width="350" columns="2">
     
    					<h:outputLabel for="skl_lst_domain" value="#{msg.experience_domain}" />
    					<t:selectOneMenu id="skl_lst_domain" value="#{employeesController.domainSelectedItem}" >
    								<c:selectItems value="#{employeesController.itemsDomains}"  />   
    								<a4j:support  event="onchange" reRender="skl_lst_skill"  action="#{employeesController.refreshItemsSkills}" ></a4j:support>
     
    					</t:selectOneMenu>  
     
     
    					<h:outputLabel for="skl_lst_skill"  value="#{msg.experience_skill}" />
    					<t:selectOneMenu id="skl_lst_skill" value="#{employeesController.skillSelectedItem}" >  
    							<c:selectItems value="#{employeesController.itemsSkills}"  /> 
    					</t:selectOneMenu>  
     
     
    					<h:outputLabel for="skl_lst_experience" value="#{msg.experience_level}" />
    					<t:selectOneMenu id="skl_lst_experience" value="#{employeesController.experienceSelectedItem}" >  
    						<c:selectItems value="#{employeesController.itemsExperiences}"  />   
    					</t:selectOneMenu>  
     
     
    					<h:outputLabel for="skl_txt_precision" value="#{msg.experience_precision}" />
    					<h:inputText id="skl_txt_precision" value="" />
     
     
    					<a4j:commandButton id="btt_editSkillEmployee" action="#{employeesController.createEmployeeSkillAction}" value="#{msg.employee_action_update}" reRender="a4jskill"   /> 
     
     
    					</h:panelGrid>
    					<a4j:outputPanel id="a4jskill" >
    					<h:panelGrid>
    						<t:dataTable id="gridSkill" border="1" cellspacing="0" cellpadding="0" value="#{employeesController.employeeSkills}" var="itemEmployeeSkill" sortable="true" rowClasses="tableRow1,tableRow2" rowOnMouseOver="">
    							<h:column>
    								<c:facet name="header">
    									<h:outputText value="#{msg.experience_domain}" />
    								</c:facet>
    								<h:outputText value="#{itemEmployeeSkill.skill.domain.domainLabel}" />
    							</h:column>
    							<h:column>
    								<c:facet name="header">
    									<h:outputText value="#{msg.experience_skill}" />
    								</c:facet>
    								<h:outputText value="#{itemEmployeeSkill.skill.skillLabel}" />
    							</h:column>
    							<h:column>
    								<c:facet name="header">
    									<h:outputText value="#{msg.experience_level}"  />
    								</c:facet>
    								<h:outputText value="#{itemEmployeeSkill.experience.label}" />
    							</h:column>
    							<h:column>
    							<c:facet name="header">
    								<h:outputText value="" />
    							</c:facet>
     
    								<h:commandLink action="#{employeesController.deleteEmployeeSkillAction}">
    								<c:param value="#{itemEmployeeSkill.id}" name="employeeSkillId" />
    								<h:graphicImage style="border: 0" id="image1" value="/web/images/delete.png" width="15" height="15" />
    							</h:commandLink>	
     
    							<c:verbatim>&nbsp;</c:verbatim>
    							</h:column>
     
    						</t:dataTable>
    					</h:panelGrid>
    					</a4j:outputPanel>
    			</t:panelTab>			
    		</t:panelTabbedPane>
    	</h:form>
    </c:subview>

    Managed Bean (employeesContorller)
    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
    /** Methode chargee de creer une competence employe     
                     *  * @return Cle de navigation (outcome) definissant le prochain ecran  (view) 
                     * a afficher en fonction de la reussite/echec de l'action*/
    		public String createEmployeeSkillAction() {
    			log.debug("createEmployeeSkillAction()");
     
    			if (experienceSelectedItem == null || skillSelectedItem == null) {
    				log.debug("createEmployeeSkillAction() > item(s) null : experienceSelectedItem="+experienceSelectedItem+" | skillSelectedItem="+skillSelectedItem);
    				return "warn";
    			}
     
    			try {
     
    				int employeeId=this.displayedEmployee.getId();
    				int experienceId=Integer.valueOf(experienceSelectedItem);
    				int skillId=Integer.valueOf(skillSelectedItem);
     
    				log.debug("createEmployeeSkillAction() > Employee id  ="+ employeeId + " - Experience id=" +  experienceId + " - Skill Id" + skillId);
     
    				// Recuperation des objets selectionnees dans les listes deroulantes
    				Experience createdExperience = experienceService.getExperience(experienceId);
    				Skill createdSkilm = skillService.getSkill(skillId);
     
    				// Sauvegarde objet EmployeeSkill (Competences Employes) manipule
    				displayedEmployeeSkill = new EmployeeSkill();
    				displayedEmployeeSkill.setEmployeeId(employeeId);
    				displayedEmployeeSkill.setExperience(createdExperience);
    				displayedEmployeeSkill.setSkill(createdSkilm);
     
    				this.employeeSkillService.saveEmployeeSkill(this.displayedEmployeeSkill);
    				addInfoMessageInContext("createOK","Competence Collaborateur :","Creation effectue avec succes");
     
    				getEmployeeSkills();
     
    				return "success";
    			} catch (Exception e) {
    				e.printStackTrace();
    				return "failure";
    			}
    		}
     
    		/** Methode chargee de retourner une collection 
                             * contenant l'ensemble des competences
                             *  de l'employe manipule dans l'IHM.
                             * @return Collection d'objet EmployeeSkill correspondant e ll'ensemble des competences de l'employe manipule dans l'IHM */
    			public Collection <EmployeeSkill> getEmployeeSkills() {
    				employeeSkills = displayedEmployee.getSkills();
     
    				return employeeSkills;
    			}
    Fichier Managed Bean XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<managed-bean>
    		<description>
    				Bean managée relatif à la classe Controller Employees.
    		</description>
    		<managed-bean-name>employeesController</managed-bean-name>
    		<managed-bean-class>
    			com.gesco.web.controllers.EmployeesController
    		</managed-bean-class>
    	</managed-bean>

    Fichier web.xml
    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
     
        <context-param>
            <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
            <param-value>server</param-value>
        </context-param>
     
     
            <context-param>
                    <param-name>
                            org.apache.myfaces.NUMBER_OF_VIEWS_IN_SESSION
                    </param-name>
                    <param-value>7</param-value>
                    <description>
                            Only applicable if state saving method is "server" (=
                            default). Defines the amount (default = 20) of the latest
                            views are stored in session.
                    </description>
            </context-param> 
     
             <context-param>
            <param-name>org.apache.myfaces.COMPRESS_STATE_IN_SESSION</param-name>
            <param-value>false</param-value>
         </context-param>
     
            <context-param>
                    <param-name>
                            org.apache.myfaces.SERIALIZE_STATE_IN_SESSION
                    </param-name>
                    <param-value>false</param-value>
            </context-param>
    MERCI DE VOTRE AIDE PRECIEUSE

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3
    Par défaut
    Je me permets de relancer la discussion au cas où ! Car bien que j'ai pu avancer sur d'autres composantes, je reste bloquer... Merci de votre compréhension

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/11/2011, 08h33
  2. [a4j] Support ne recharge pas ma datatable.
    Par mcfly37 dans le forum JSF
    Réponses: 8
    Dernier message: 18/05/2011, 17h25
  3. Réponses: 5
    Dernier message: 12/02/2009, 14h54
  4. <a4j:commandButton> attribut data
    Par sendoshi dans le forum JSF
    Réponses: 3
    Dernier message: 24/12/2008, 14h25
  5. JSF RichFace et Ajax4JSF
    Par damien77 dans le forum JSF
    Réponses: 9
    Dernier message: 15/09/2008, 16h20

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