Hello,
Après avoir cherche, je ne trouve pas vraiment de solution a mon problème.
Je récupère une bdd dans un vecteur d'objet en réflexivité.
Chaque table a son propre bean.
--> Categorie(id,name) ; Users(id,firstName,lastName,..) ; Product(id,name,price,..)
J'ai donc un vector<object> contenant toute ma bdd.
Je souhaiterai afficher via jsp cette bdd dans un tableau.
Le code Jsp
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<h:form id="describe">
<x:dataTable value='#{user.data}' var='data'>
<h:column>
<f:facet name="header" >
<h:outputText value="email"/>
</f:facet>
<h:outputText value='#{data.firstName}' />
<h:outputText value='#{data.lastName}' />
<h:outputText value='#{data.email}' />
</h:column>
</x:dataTable>
</h:form> |
Le code java - Vector<Object> data correspond au {user.data} du jsp.
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
|
private Vector<Object> data;
/** remplissage du vector **/
private Object[] read(String table)
{
table = Tools.capitalize(table);
String modelsStr = new String("pack.");
if (table.substring(0, modelsStr.length()).equals(modelsStr))
table = table.substring(modelsStr.length());
ArrayList<Object> list = new ArrayList<Object>();
String[] columnsNames = this.getTableColumnsName(table);
try
{
Class myTableAssociatedClass = Class.forName("pack." + table);
this.myResultSet = this.myState.executeQuery("SELECT * FROM " + table + ";");
while (this.myResultSet.next()) //incremente aussi l'index pour la lecture des donnees
{
Object target = myTableAssociatedClass.newInstance();
for (int i = 0; i < columnsNames.length; ++i)
if (!this.isForeignKey(table, columnsNames[i]))
BeanUtils.setProperty(target, columnsNames[i], this.myResultSet.getString(columnsNames[i]));
list.add(target);
}
}
catch (Exception e) {Tools.err(e.getLocalizedMessage());}
return list.toArray(new Object[]{});
} |
Le soucis c'est que je ne parviens pas a cast data, pour lui faire afficher les données dans je jsp.
--> ((Vector<user>)data).lastName
Merci d'avance d'une éventuelle aide.
Partager