introduire les données de ma base dans une page jsf
salut tout le monde,
j'ai un problème avec l'accès à ma base de données,j'utilise le modèle MVC avec jsf,
et mon problème c'est que à l'exécution ma datatable doit etre remplie à partir des données de la base,
mon idée c'est de mettre le code de la selection de la base à l'interieur de la classe "association" dans
laquelle j'ai déclaré mon "Arraylist":
voila le code
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
| package beans;
import java.util.ArrayList;
import java.sql.*;
import beans.Personne;
public class Association {
private ArrayList adherents = null;
public Association(String a,String b) {
this.adherents = new ArrayList();
this.adherents.add(new Personne(a,b));
}
public Association() {
//}
//public Association(ArrayList adher ) {
try {
Connection conn= connexion.connect();
Statement stmt = conn.createStatement();
ResultSet rs =
stmt.executeQuery("select nom,prenom from personne");
while(rs.next()){
this.adherents.add(new Personne(rs.getString(1),rs.getString(2)));
//this.nom= rs.getString(1);
//this.prenom= rs.getString(2);
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
rs.close();
conn.close();
} catch(SQLException e2){
System.out.println("ERREUR de CONNEXION");
e2.printStackTrace();
}
}
public ArrayList getAdherents() {
return this.adherents;
}
public void setAdherents(ArrayList adherents) {
this.adherents = adherents;
}
public void removeAdherent(Personne adhe){
this.adherents.remove(adhe);
}
public void addAdherent(Personne adhe){
this.adherents.add(adhe);
}
} |
:
et voila le code de l'interface "model":
Code:
1 2 3 4 5 6 7 8 9 10 11
|
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package beans;
public interface Model {
public Object getDatas();
public void setDatas(Object object);
} |
et puis celui de la classe qui va implémenter "model":
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
| package beans;
import java.util.ArrayList;
import java.util.List;
import java.sql.*;
public class SimpleModel implements Model {
private Object datas;
public SimpleModel() {
}
public Object getDatas(){
return this.datas;
/*
try {
Connection conn= connexion.connect();
Statement stmt = conn.createStatement();
ResultSet rs =
stmt.executeQuery("select nom,prenom from personne");
while(rs.next()){
this.datas.adherents.add(new Personne(rs.getString(1),rs.getString(2)));
//this.nom= rs.getString(1);
//this.prenom= rs.getString(2);
System.out.println(rs.getString(1)+" "+rs.getString(2));
}
rs.close();
conn.close();
} catch(SQLException e2){
System.out.println("ERREUR de CONNEXION");
e2.printStackTrace();
}
*/
}
public void setDatas(Object object){
this.datas = object;
}
} |
et enfin la page jsp :
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
| <%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
<h3>Association des footballeurs</h3>
<h:form>
<h:dataTable binding="#{assocCtrl.view.dataTable}"
value="#{assocCtrl.model.datas.adherents}" var="personne" border="1">
<h:column>
<h:selectBooleanCheckbox binding="#{assocCtrl.view.checkbox}"/>
</h:column>
<h:column>
<f:facet name="header">
<f:verbatim>Nom</f:verbatim>
</f:facet>
<h:outputText value="#{personne.nom}"/>
</h:column>
<h:column>
<f:facet name="header">
<f:verbatim>Prénom</f:verbatim>
</f:facet>
<h:outputText value="#{personne.prenom}"/>
</h:column>
</h:dataTable>
<br>
<h:commandButton value="Supprimer adhérent"
action="#{assocCtrl.removeSelectedPersonnes}"/>
<h:commandButton value="Ajouter adhérent"
action="Ajout"/>
</h:form>
</f:view> |
s'il vous plait aidez moi
et merci d'avance.