Bonjour,

J'essaye d'utiliser les datagrids de struts et j'ai une erreur dans ma page :
javax.servlet.ServletException: No getter method available for property DevisDataGridForm_fg for bean under name org.apache.struts.taglib.html.BEAN
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
at org.apache.jsp.Commun.DevisAdh_0005ffg$jsp._jspService(DevisAdh_0005ffg$jsp.java:396)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
...
...
Je me permet de soumettre mes classes, ma page JSP et un bout de mon struts-config.xml :

struts-config.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
16
17
18
19
20
21
22
 
...
<form-beans>
<form-bean name="DevisDataGridForm_fg" 	type="com.ex.struts.form.DevisDataGridForm_fg"/>
...
</form-beans>
...
...
 
<action path="/Devis"
  name="DevisDataGridForm_fg"
  type="package com.exc.struts.form.DevisDataGridData"
  validate="false"
  parameter="reqCode"
  scope="session"
  input="/Devis.jsp"
  >
     <forward name="jsp" path="/Commun/DevisAdh_fg.jsp" />
</action>
...
...
</action-mapping>


DevisAdh_fg.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
16
17
18
19
20
21
22
 
<layout:html>
  <layout:form action="/Devis" reqCode="display">
    <layout:row>
        <layout:datagrid  model="datagrid" 
              property="DevisDataGridForm_fg" 
              multipleSelectionAllowed="false"
              selectionAllowed="false">
 
                  <layout:datagridColumn title="jour" property="numJour"/>
	<layout:datagridColumn title="mois" property="numMois"	/>
	<layout:datagridColumn title="annee" property="numAnnee"/>
 
          </layout:datagrid>
 
          <layout:column>
              <layout:submit reqCode="calcul">Soumettre</layout:submit>
          </layout:column>
 
    </layout:row>
  </layout:form>
</layout:html>
DevisDataGridForm_fg.java
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
 
package com.exc.struts.form;
 
import org.apache.struts.action.ActionForm;
 
import fr.improve.struts.taglib.layout.datagrid.Datagrid;
 
public class DevisDataGridForm_fg extends ActionForm {
 
	private Datagrid datagrid;
 
	public void setDatagrid(Datagrid datagrid) {
		this.datagrid = datagrid;
	}
 
	public Datagrid getDatagrid() {
		return datagrid;
	}
}
DevisDataGridData.java
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
 
package com.exc.struts.form;
 
 
import com.exc.struts.beans.DevisBean;
 
 
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;
 
import java.util.List;
import java.util.Vector;
 
public class DevisDataGridData extends DispatchAction {
 
	private List getList() {
 
		Vector lst = new Vector(4);
 
		lst.add(new DevisBean(2,10,1990,new char[] {'R','L'}));
		lst.add(new DevisBean(7,9,1991,new char[] {'R','G'}));
 
		return lst;
 
	}
 
	public ActionForward display (	  ActionMapping in_mapping
									, ActionForm in_form
									, HttpServletRequest in_request
									, HttpServletResponse in_reponse) {
 
		// Récupére le datagrid de DevisDataGridForm_fg
		DevisDataGridForm_fg dataGridForm = (DevisDataGridForm_fg) in_form;
 
 
		// Création d'une Datagrid :
		Datagrid datagrid = Datagrid.getInstance();
 
		// Définie le type de classe qui identifie les données :
		datagrid.setDataClass(DevisBean.class);
 
		// Lie les données :
		datagrid.setData( this.getList() );
 
		// Initialise le form :
		dataGridForm.setDatagrid(datagrid);
 
		// 
		return in_mapping.findForward("jsp");
 
	}
 
}

DevisBean.java
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
41
42
43
44
45
46
47
48
49
50
 
package com.exc.struts.beans;
 
 
public class DevisBean {
 
	int numJour;
	int numMois;
	int numAnnee;
	char[] codeRegime = new char[2];
 
	public DevisBean(int numJour,int numMois,int numAnnee,char[] codeRegime) {
		setNumJour(numJour);
		setNumMois(numMois);
		setNumAnnee(numAnnee);
		setCodeRegime(codeRegime);
	}
 
	public void setNumJour(int numJour) {
		this.numJour = numJour;
	}
	public int getNumJour() {
		return numJour;		
	}
 
 
	public void setNumMois(int numMois) {
		this.numMois = numMois;
	}
	public int getNumMois() {
		return numMois;		
	}
 
 
	public void setNumAnnee(int numAnnee) {
		this.numAnnee = numAnnee;
	}
	public int getNumAnnee() {
		return numAnnee;		
	}
 
 
	public void setCodeRegime(char[] codeRegime) {
		this.codeRegime = codeRegime;
	}
	public char[] setCodeRegime() {
		return codeRegime;
	}
 
}
D'avance merci pour votre aide.
TSalm