Bonjour

je voudrais passer du coté serveur le code de la touche du clavier enfoncé pour faire un traitement.Voici le code

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
						<p:autoComplete id="#{id}numeroDepartement"
							value="#{helper.departementRecherche}"
							completeMethod="#{testDepartementHelper.completeDepartement}"
							forceSelection="true" minQueryLength="0" maxResults="20"
							var="testDepartement" itemLabel="#{testDepartement.shortString()}"
							itemValue="#{testDepartement}" converter="#{testDepartementConverter}"
							queryDelay="300" size="40"
							disabled="#{!helper.choixDepartement}"
							required="#{!helper.choixDepartement ? false : empty helper.listeDepartements}"
							requiredMessage="recherche.departement.required"
							widgetVar="testDepartementRecherche" onkeyup="document.getElementById('#{keyCode.clientId}').value=event.keyCode;">
							<p:ajax event="itemSelect"
								update="#{id}Recherche #{widgetVar}Panel"
								process="#{widgetVar}Panel" />
								<p:ajax event="keyup"  execute="@this keyCode" listener="#{helper.action}" />
						</p:autoComplete>
						<h:inputHidden id="keyCode" binding="#{keyCode}" value="#{helper.keyCode}" />
Voici mon Bean de traitement du coté serveur (helper = testComparaisonHelper)

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
 
@ManagedBean
@ViewScoped
public class TestComparaisonHelper  implements Serializable {
 
	/**
         * 
         */
	private static final long serialVersionUID = -9129695073270590797L;
 
	private int keyCode;
 
	public int getKeyCode() {
		return keyCode;
	}
 
 
 
	public void setKeyCode(int keyCode) {
		this.keyCode = keyCode;
	}
 
	public void action() {
		int i = 0;
		switch (keyCode) {
		case 13:
			// Enter key was pressed.
			break;
		case 27:
			// Escape key was pressed.
			break;
		default:
			// Other key was pressed.
			break;
		}
	}
Il y a 2 choses qui ne vont pas
1) le setter de keyCode n'est jamais appelé
2) la méthode action n'est appelé qu'à la deuxième frappe du clavier

Merci d'avance pour votre aide.