[Primefaces] Mettre à jour une table sur un event rowSelect
	
	
		Bonjour,
je souhaiterais mettre à jour une deuxième table basée sur la sélection d'une ligne dans une première table.
J'ai beau débugger, je vois bien mes beans mis à jour quand je sélectionne une ligne, et les getter bien appelés, la table n'est pas mise à jour.
J'ai un formulaire pour lequel cela fonctionne bien, mais pas la table.
Voici le code
Première table sur laquelle la selection est faite.
	Code:
	
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
   | <ui:composition xmlns="http://www.w3.org/1999/xhtml" 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:p="http://primefaces.org/ui">
		<h:form id="memberTableForm" prependId="false">
			<p:dataTable var="member" value="#{membersTable.members}" filteredValue="#{membersTable.filteredMembers}" widgetVar="membersTableVar" scrollable="true" scrollHeight="1%" tableStyle="width:98%" selectionMode="single" selection="#{membersTable.selectedMember}"
				rowKey="#{member}">
				<p:ajax event="rowSelect" listener="#{membersTable.onRowSelect}" update="@([id$=memberFormId], [id$=memberAbonnements])" />
				<p:column headerText="#{messages['NUMERO.MEMBRE']}">
					<h:outputText value="#{member.memberNumber}" />
				</p:column>
				<p:column headerText="#{messages['NOM']}" filterBy="#{member.name}" filterMatchMode="startsWith">
					<h:outputText value="#{member.name}" />
				</p:column>
				<p:column headerText="#{messages['PRENOM']}" filterBy="#{member.firstname}" filterMatchMode="startsWith">
					<h:outputText value="#{member.firstname}" />
				</p:column>
				<p:column headerText="#{messages['ADRESSE']}">
					<h:outputText value="#{member.address}" />
				</p:column>
				<p:column headerText="#{messages['VILLE']}">
					<h:outputText value="#{member.postalCode} #{member.city}" />
				</p:column>
				<p:column headerText="#{messages['TELEPHONE']}">
					<h:outputText value="#{member.phone}" />
				</p:column>
				<f:facet name="footer">
					<h:outputText value=" " />
				</f:facet>
			</p:dataTable>
		</h:form>
</ui:composition> | 
 
et la deuxième table sur laquelle aucune mise à jour n'est faite
	Code:
	
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
   | <ui:composition xmlns="http://www.w3.org/1999/xhtml" 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:p="http://primefaces.org/ui">
		<h:form id="memberAbonnements" prependId="false">
			<p:dataTable var="abonnement" value="#{memberAbonnement.abonnements}" scrollable="true" scrollHeight="1%" tableStyle="width:98%" selectionMode="single" selection="#{membersTable.selectedMember}"
				rowKey="#{abonnement}">
<!-- 				<p:ajax event="rowSelect" listener="#{membersTable.onRowSelect}" update=":masterTabView:memberForm" /> -->
				<p:column headerText="#{messages['SAISON']}">
					<h:outputText value="#{abonnement.saison.id}" />
				</p:column>
				<p:column headerText="#{messages['BLOC']}">
					<h:outputText value="#{abonnement.blocId.blocValue}" />
				</p:column>
				<p:column headerText="#{messages['RANG']}">
					<h:outputText value="#{abonnement.rang}" />
				</p:column>
				<p:column headerText="#{messages['PLACE']}">
					<h:outputText value="#{abonnement.place}" />
				</p:column>
				<p:column headerText="#{messages['REDUCTION']}">
					<h:outputText value="#{abonnement.reduction}" />
				</p:column>
				<p:column headerText="#{messages['PAYE']}">
					<p:selectBooleanCheckbox value="#{abonnement.paye}" />
				</p:column>
				<p:column headerText="#{messages['ACOMPTE']}">
					<h:outputText value="#{abonnement.acompte}" />
				</p:column>
				<p:column headerText="#{messages['PLACE.COMMANDEE']}">
					<h:outputText value="#{abonnement.placeCommandee}" />
				</p:column>
				<f:facet name="footer">
					<h:outputText value=" " />
				</f:facet>
			</p:dataTable>
		</h:form>
</ui:composition> | 
 
Le bean de la première table
	Code:
	
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
   | package standardNaast.beans;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
import javax.annotation.PostConstruct;
 
import org.primefaces.event.SelectEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
 
import standardNaast.entities.Abonnement;
import standardNaast.entities.Personne;
import standardNaast.service.PersonneService;
 
@Controller("membersTable")
@Scope("session")
public class MembersTableBean implements Serializable {
 
	private static final long serialVersionUID = 7614568701955199215L;
 
	private List<Personne> members = new ArrayList<>();
 
	private List<Personne> filteredMembers = new ArrayList<>();
 
	private Personne selectedMember;
 
	private List<Abonnement> abonnements;
 
	@Autowired
	private MemberAbonnementBean memberAbonnementBean;
 
	@Autowired
	private MemberFormBean memberForm;
 
	@Autowired
	private PersonneService personneService;
 
	@PostConstruct
	public void init() {
		System.out.println("Initializing MembersTableBean");
		List<Personne> findAllPerson = this.personneService.findAllPerson();
		Collections.sort(findAllPerson);
		this.members = findAllPerson;
		this.filteredMembers = findAllPerson;
	}
 
	public List<Personne> getMembers() {
		return this.members;
	}
 
	public List<Personne> getFilteredMembers() {
		return this.filteredMembers;
	}
 
	public void setFilteredMembers(final List<Personne> filteredMembers) {
		this.filteredMembers = filteredMembers;
	}
 
	public Personne getSelectedMember() {
		return this.selectedMember;
	}
 
	public void setSelectedMember(final Personne selectedMember) {
		this.selectedMember = selectedMember;
		this.setAbonnements(this.getSelectedMember().getAbonnementList());
	}
 
	public void onRowSelect(final SelectEvent event) {
		this.memberForm.setPersonne(this.getSelectedMember());
		this.memberAbonnementBean.setAbonnements(this.getAbonnements());
	}
 
	public List<Abonnement> getAbonnements() {
		return this.abonnements;
	}
 
	public void setAbonnements(final List<Abonnement> abonnements) {
		this.abonnements = abonnements;
	}
} | 
 
Et le code du deuxième bean
	Code:
	
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
   | package standardNaast.beans;
 
import java.io.Serializable;
import java.util.List;
 
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
 
import standardNaast.entities.Abonnement;
 
@Controller("memberAbonnement")
@Scope("session")
public class MemberAbonnementBean implements Serializable {
 
	private static final long serialVersionUID = 423300322596970656L;
 
	private List<Abonnement> abonnements;
 
	public List<Abonnement> getAbonnements() {
		return this.abonnements;
	}
 
	public void setAbonnements(final List<Abonnement> abonnements) {
		this.abonnements = abonnements;
	}
} | 
 
Le setter et getter du deuxième bean est bien appelé. Quand je débugge je vois bien que le getAbonnements() est bien appelé via org.primefaces.component.datatable.DataTable.getValue()
--> Voilà je suis bloqué là. :?
Merci d'avance pour votre aide.