Bonjour et bonne année a tous.
Je souhaite afficher une grille de données sous forme d'un tableau à plusieurs dimensions a partir d'une BDD avec la possibilité de modifier et enregistrer les données de chaque champ :
Mon application (pour les RH) est : une table de 5 colonnes [position] (ingénieur, Technicien, Commerciale....etc), [salaire minimum] (chiffe modifiable formaté en euros), [salaire moyen], [salaire maximum], [type de contrat] (CDD, CDI...).
le tout avec un petit menu de recherche selon (type de contrat et le salaire max) dans la même JSP.
Le tableau ressemble à ceci avec seulement les chiffres modifiable
--------------------------------------------------------------------------
|Position | Salaire minimum| Salaire moyen| Salaire maximum| Type de contrat|
--------------------------------------------------------------------------
|ingenieur | 45 000,00 Eur | 55 000,00 | 75 000,00 | CDD |
--------------------------------------------------------------------------
|technicien | 25 000,00 | 35 000,00 | 55 000,00 | CDI |
--------------------------------------------------------------------------
- J'ai suivi l'exemple du tutorial mais ça ne marche pas comme il faut, je ne sais pas si j'ai oublié qq chose.
Voici le code au complet:
FORM BEAN avec les GET/SET
L'ACTION
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 package com.foo.datagrid; import org.apache.struts.action.ActionForm; import fr.improve.struts.tagli.layout.datagrid.Datagrid; public class DatagridForm extends ActionForm { private Datagrid datagrid; public void setDatagrid(Datagrid in_datagrid) { datagrid = in_datagrid; } public Datagrid getDatagrid() { return datagrid; } }
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 package com.foo.datagrid; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; import fr.improve.struts.taglib.layout.datagrid.Datagrid; public class DatagridAction extends DispatchAction { public ActionForward display(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse reponse) { DatagridForm lc_form = (DatagridForm) actionForm; // Get an object list. List salaireList = salaire.ListSalaire(); // Create a datagrid. Datagrid lc_datagrid = Datagrid.getInstance(); // Set the bean class for new objects. We suppose SomeBean is the class of the object in the List aList. lc_datagrid.setDataClass(Salaire.class); // Set the data lc_datagrid.setData(salaireList); // Initialize the form lc_form.setDatagrid(lc_datagrid); // Forward to the jsp. return actionMapping.findFoward("jsp"); }
Mon DataAccess pour la BDD
ma class salaire bean
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
40 public DataGridForm() throws Exception { ArrayList salaires = new ArrayList(); Salaire objSalaire; datagrid = Datagrid.getInstance(); datagrid.setDataClass(salaire.class); datagrid.setData(liste); ResultSet rs = null; CallableStatement callStmt = null; ctx.setMethodName("DataGridForm"); ctx.setStoredProcedureName("SALAIRE_GET"); callStmt = con.prepareCall("CALL SALAIRE_GET()"); callStmt.execute(); rs = callStmt.getResultSet(); while (rs != null && rs.next()) { objSalaire = new salaire (); objSalaire.setPosition(rs.getString("Position")); objSalaire.setSalaireMin(rs.getDouble("Salaire Minimum")); objSalaire.setSalaireMoy(rs.getDouble("Salaire Moyen")); objSalaire.setSalaireMax(rs.getDouble("Salaire Maximum")); objSalaire.setTypeContrat(rs.getString("Type de Contrat")); salaire.add(objSalaire); } if (rs != null) { rs.close(); rs = null; } if (callStmt != null) { callStmt.close(); callStmt = null; } return salaires; }
JSP
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 Public class salaire { Protected String position; Protected Double salaireMin; Protected Double salaireMoy; Protected Double salaireMax; Protected String typeContrat; Public String getPosition(){ Return (position); } Public void setPosition (String newPosition){ Position = newPosition; } }
Struts-Config
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 <layout:html> <layout:form action="myAction" styleClass="FORM"> <layout:text key="search.salaireMax" property="salaireMax" styleClass="FIELD"/> <layout:text key="search.typeContrat" property="typeContrat" styleClass="FIELD"/> <layout:submit> <layout:message key="search.submit"/> </layout:submit> <layout:collection name="salaire" styleClass="ARRAY"> <layout:collectionItem title="salaire.position" property="position"/> <layout:collectionItem title="salaire.salaireMin" property="SalaireMin"/> <layout:collectionItem title="salaire.salaireMoy" property="salaireMoy"/> <layout:collectionItem title="salaire.salaireMax" property="salaireMax"/> <layout:collectionItem title="salaire.typeContrat" property="typeContrat"/> </layout:collection> </layout:form> </layout:html>
<struts-config>
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 ... <form-beans> <form-bean name="datagridForm" type="com.foo.datagrid.DataGridForm"/> ... </form-beans> <action-mappings> <action path="/datagrid" name="datagridForm" type="com.foo.datagrid.DatagridAction" validate="false" parameter="reqCode" scope="session"> <forward name="jsp" path="/datagrid.jsp"/> </action> ... </action-mappings> ... </struts-config>
Partager