Bonjour
je suis entrain de concevoir une interface d'historique article en utilisant une table jsf woodstock...
cette table jsf représente certains champs de ma table de base de données.
sur ma table jsf j'ai rajouté un champ contenant un lien hypertexte que j'ai baptisé "Détails". donc ce que je veux c'est que qu'on je clique sur ce lien la page de détails de l'article choisi s'affiche avec l'ensemble de ses informations....
aprés une brève recherche, j'ai compris qu'il faut faire appel à faces-config pour déclarer la séquence de page à lancer... en voici un aperçu :
sur la page5 j'ai la méthode qui transcrit l'événement de clique sur le lien hypertexte, la voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <navigation-rule> <from-view-id>/Page5.jsp</from-view-id> <navigation-case> <from-action>#{Page5.lien1_action}</from-action> <from-outcome>success</from-outcome> <to-view-id>/Page6.jsp</to-view-id> </navigation-case> </navigation-rule>
et dans la page de détails c-a-d la page6, je remplis directement les champs dans la méthode prereder() 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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 public String lien1_action() throws NamingException, NamingException, NamingException, SQLException, ClassNotFoundException { // TODO: Replace with your code try { RowKey rk = tableRowGroup1.getRowKey(); if (rk != null) { int id = Integer.parseInt(registerDataProvider.getValue("id", rk).toString()); FacesContext context = FacesContext.getCurrentInstance(); Register register=null; Connection connection = ConnectionManager.getInstance().getConnection(); Statement statement = connection.createStatement(); ResultSet resultSet=statement.executeQuery("SELECT * FROM register WHERE id=\""+id+"\""); if(resultSet.next()) { register=new Register(resultSet.getInt("id"),resultSet.getString("firstName"),resultSet.getString("lastName"),resultSet.getString("userName"),resultSet.getString("password"),resultSet.getString("profil"),resultSet.getString("email"),resultSet.getInt("contactNo"),resultSet.getString("address"),resultSet.getString("country"),resultSet.getString("state")); register.setId(resultSet.getInt("id")); register.setFirstName(resultSet.getString("firstName")); register.setLastName(resultSet.getString("lastName")); register.setUserName(resultSet.getString("userName")); register.setPassword(resultSet.getString("password")); register.setProfil(resultSet.getString("profil")); register.setEmail(resultSet.getString("email")); register.setContactNo(resultSet.getInt("contactNo")); register.setAddress(resultSet.getString("address")); register.setCountry(resultSet.getString("country")); register.setState(resultSet.getString("state")); } resultSet.close(); statement.close(); } } catch (Exception ex) { log("ErrorDescription", ex); error(ex.getMessage()); } return "success"; }
le problème c'est qu'il y'a rien qui s'affiche sur la page de détails....
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 public void prerender() { Register register = null; FacesContext context = FacesContext.getCurrentInstance().getExternalContext().getResource(test.Register); System.out.println(register.getId()); // affichage de test id.setText(register.getId()); firstName.setText(register.getFirstName()); lastName.setText(register.getLastName()); userName.setText(register.getUserName()); password.setText(register.getPassword()); profil.setText(register.getProfil()); email.setText(register.getEmail()); contactNo.setText(register.getContactNo()); address.setText(register.getAddress()); country.setText(register.getCountry()); state.setText(register.getState()); }
je vous remércie à l'avance pour votre aide.![]()
Partager