Sauvegarde contenu formulaire JSF dans la BDD
Bonjour,
J'ai effectué une formation JSF où l'on utilisait spring et hibernate en même temps.
Nous avions un bean Test tout simple de la sorte :
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
| public class Test {
private int id;
private String nom;
public Test() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
} |
et un bean userFactory qui nous fournit les beans Test (via Spring) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class UserFactory extends HibernateDaoSupport{
public Test getTest(int id) {
Test b = null;
List users = getHibernateTemplate().find("from Test where id = ?", new Integer(id));
if(users.size( ) > 0) {
b = (Test)users.get(0);
}
return b;
}
public List getTests() {
List tests = getHibernateTemplate().loadAll(Test.class);
return tests;
}
public void saveTest(Test test){
getHibernateTemplate().saveOrUpdate(test);
}
} |
Le bean Test est mappé sur une base de donnée MySql grace à Hibernate.
Pendant la formation nous avons donc affichés le contenu de notre table "Test" dans des pages jsf.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <h:outputText value="Hello"/> <h:outputText value="#{userFactory.tests}"/>
<hr/>
<h:outputText value="#{userFactory.tests[1].nom}"/>
<hr/>
<h:form>
<h:dataTable value="#{userFactory.tests}" var="test">
<h:column>
<h:outputText value="#{test.id}" />
</h:column>
<h:column>
<h:inputText value="#{test.nom}"/>
</h:column>
</h:dataTable>
</h:form> |
et à un moment donné, le formateur nous a montré comment sauvegarder les modifications apportées dans nos champs du formulaire directement dans la base de donnée, en utilisant la methode saveOrUpdate du TemplateHibernate :
Code:
1 2 3
| public void saveTest(Test test){
getHibernateTemplate().saveOrUpdate(test);
} |
Le problème c'est que j'ai un cerveau de poisson rouge et que je ne m'en rappelle plus! Ce que je me souviens c'est que c'était vraiment pas compliqué du tout contrairement à ce que j'ai trouvé sur le net..
Ce que j'aimerais faire c'est genre un bouton que quand je clique dessus il m'enregistre les modifs par exemple :
Code:
<h:commandButton action="#{userFactory.saveTest(userFactory.tests[1])}"/>
Mais le problème vient au niveau du passage de paramètre de ma fonction saveTest, et j'ai un super méga trou de mémoire...
Merci pour les éventuelles réponses.
a+
Laurent