Bonjour,

J'ai réalisé un datagrid d'un pour une autre table de ma base, avec un bean tres simple ( juste des String ), toutes les fonctionnalités du datagrid fonctionne , add save remove.

Maintenant je souhaite réaliser un datagrid d'ObligationInitiale contenant une Periodicité un peu plus compliqué, le datagrid s'affiche, mais je bloque sur le save.

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
<layout:datagrid property="datagrid" model="datagrid" styleClass="DATAGRID" >
 
<layout:datagridColumn title="Titre" property="titre"/>
 
<layout:datagridSelect title="Périodicite" property="periodicite.id">
	<layout:options collection="periodicites" property="id" labelProperty="libelle"/>
</layout:datagridSelect>
 
</layout:datagrid>
 
<layout:row>
	<layout:button onclick="StrutsLayout.addDatagridLine('datagrid')">Ajouter</layout:button>
	<layout:button onclick="StrutsLayout.setDatagridLineState('datagrid', 'removed')">Supprimer</layout:button>
	<layout:submit reqCode="update" >Sauvegarder</layout:submit>
</layout:row>
le bean ObligationInitiale :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
public class ObligationInitiale implements Serializable
{
 
	private String titre;
	private Periodicite periodicite;
qui a une periodicité :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
public class Periodicite implements Serializable
{
	private String id;
	private String libelle;
dans mon form, je prepare le terrain :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
public ConsulterObligationInitialeForm()
	{	
		periodicites = new ArrayList<String>();
		ArrayList<ObligationInitiale> liste = new ArrayList<ObligationInitiale>() ;
 
		datagrid = Datagrid.getInstance();
		datagrid.setDataClass(ObligationInitiale.class);
		datagrid.setData(liste);
	}
j'initialise mon datagrid :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
consulterObligationInitialeForm.setDatagrid(datagrid);
 
ArrayList periodicites = PeriodiciteFactory.getAll();
request.getSession(false).setAttribute("periodicites", periodicites);
mon config :

Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<form-bean name="consulterobligationinitialeForm" type="form.ConsulterObligationInitialeForm">
	<form-property name="reqCode" type="java.lang.String"/>
	<form-property name="id" type="java.lang.String"/>
</form-bean>
si j'enleve le datagridSelect , je rentre dans ma methode update mais avec :

dans ma console d'eclipse :
11:16:00,734 ERROR [[action]] Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: No bean specified
at org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptor(PropertyUtilsBean.java:751)
sur le navigateur :

javax.servlet.ServletException: BeanUtils.populate
merci de votre aide