Bonjour,
je vous contacte car je cherche une solution depuis pas mal de temps sur internet, et je ne trouve pas quelque chose qui fonctionne.

J'ai une page web, avec des boutons par décennie. au clic sur le bouton, cela m'affiche 10 boutons correspondant aux dix valeurs de la décennie. Jusque là, j'y arrive. le problème est qu'au clic sur l'un de ces boutons (exemple: 1966),
cela doit mettre un jour une liste d'affichage dans un tableau. Le soucis est que lorsque je récupère dans mon bean la valeur, elle est toujours à null.
Ce n'est pas simple à présenter, mais voici le code en question:

côté html:
Code HTML : 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
<div id="decenniesSelect">
	<h:commandButton id="cb1960-1969" name="1960-1969" value="1960-1969" onclick="afficherAnnees('1960-1969')">     
		<f:ajax/>
	</h:commandButton>
	<h:commandButton id="cb1970-1979" name="1970-1979" value="1970-1979" onclick="afficherAnnees('1970-1979')"> 
		<f:ajax/>
	</h:commandButton>
	<h:commandButton id="cb1980-1989" name="1980-1989" value="1980-1989" onclick="afficherAnnees('1980-1989')"> 
		<f:ajax/>
	</h:commandButton>
	<h:commandButton id="cb1990-1999" name="1990-1999" value="1990-1999" onclick="afficherAnnees('1990-1999')"> 
		<f:ajax/>
	</h:commandButton>
	<h:commandButton id="cb2000-2009" name="2000-2009" value="1970-1979" onclick="afficherAnnees('2000-2009')"> 
		<f:ajax/>
	</h:commandButton>
	<h:commandButton id="cb2010-2019" name="2010-2019" value="1970-1979" onclick="afficherAnnees('2010-2019')"> 
		<f:ajax/>
	</h:commandButton>
</div>
 
 
 
 <h:form> 
<div id="annees">
	<div id="anneesAAfficher" style="display:none"> 
		<h:commandButton id= "a1" value="">
			<f:ajax  event="click" render="tableauExpoSolo" listener="#{mbExpoSolo.getExpoParAn(item.value,item.value)}">
 
 		<h:commandButton id="a2" value="" >
 			<f:ajax event="click" render="tableauExpoSolo" listener="#{mbExpoSolo.getExpoParAn(item.value,item.value)}"/>
 		</h:commandButton> -->
	</div>
</div>
</h:form>
 
<p:dataTable id="tableauExpoSolo" value="#{mbExpoSolo.expositionsSoloAAfficherA}" var="exposition" sortOrder="ascending" sortBy="#{exposition.debutExposition}">
					<p:column headerText="#{bundleExpo['expositions.nom.column']}">
						<h:outputLabel value="#{exposition.nomExposition}" />
					</p:column>
					<p:column headerText="#{bundleExpo['exposition.date.start.column']}">
						<h:outputLabel value="#{exposition.debutExposition}">
							<f:convertDateTime pattern="dd-MM-yyyy"/>
						</h:outputLabel>
					</p:column>
					<p:column headerText="#{bundleExpo['exposition.date.end.column']}">
						<h:outputLabel value="#{exposition.finExposition}">
							<f:convertDateTime pattern="dd-MM-yyyy"/>
						</h:outputLabel>
					</p:column>
				</p:dataTable>
il y a 10 commandbutton id="a*"

Leur mise à jour est faite via le script suivant:

Code JavaScript : 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
function afficherAnnees(nameDec){
	let decennieSelecta=nameDec; //Récupération de la décennie sélectionnée
 
	let decAAfficher=document.getElementById("anneesAAfficher"); //Récupération de la div qu'il faudra afficher
 
	if (getComputedStyle(decAAfficher).display != "none"){
		decAAfficher.style.display="block";
		} else {
		decAAfficher.style.display="block";
		}
 
// 	var noeudsEnfants = decAAfficher.childNodes;
 
	if (decAAfficher.hasChildNodes()){
		var children = decAAfficher.childNodes;
 
		let decDepart= decennieSelecta.slice(0, 3);
		let taille = children.length;
 
		for (var i = 0; i<taille; i++){
				children[i].value=decDepart+i; 
			}
		}
};

coté bean, j'ai essayé plusieurs choses, dont remplacer le "item.value" par une variable existant dans le bean, mais j'ai toujours un retour à null.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public void getExpoParAn( String debutDec, String finDec) throws ParseException{
		expositionsSoloAAfficher = new ArrayList<Exposition>();
		Date debutDecDate= new SimpleDateFormat("dd/MM/yyyy").parse(debutDec);
		System.out.println(debutDec + debutDecDate);
		Date fintDecDate= new SimpleDateFormat("dd/MM/yyyy").parse(finDec);		
		expositionsSoloAAfficher = expositionsSolo.stream().filter(expo -> ((expo.getDebutExposition().after(debutDecDate)) && (expo.getDebutExposition().before(fintDecDate)))).collect(Collectors.toList());
	}


J'ai essayé également de récupérer la valeur avec:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
FacesContext context = FacesContext.getCurrentInstance();
Long id = context.getApplication().evaluateExpressionGet(context, "#{item.value}", Long.class);
Ce que je ne comprends pas, c'est que si je rajoute un script affichant en console la valeur associée au bouton, j'obtient bien l'année en question, et non pas null. Quelqu'un aurait il une idée du problème?

Je ne savais pas trop si le sujet était plus Java, ou html, veuillez m'excuser si le post n'est pas dans le bon forum. Merci d'avance!