Bonsoir,

j'espere que vous pourrez m'aider ou au moins me donner des idées. je dois afficher dans un display table des colonnes qui proviennent d'une list. cette liste etant inclus dans 2 autre list. et lorsque je poste mon formulaire les setters ne sont pas appelé.

je pense que le soucis vient de comment ecrire le html:text correctement mais là je seche, et je craque


mes dto:
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
 
public class ColonneDto {
 
	/** Log4j. */
	private static final Logger LOGGER = Logger.getLogger(ColonneDto.class);
 
	private String libelleColonne;
	private String nomColonne;
	private String ancienneValeur;
	private String nouvelleValeur;
 
	/**
         * @param nomColonne
         * @param ancienneValeur
         */
	public ColonneDto(String nomColonne, String ancienneValeur) {
		super();
		this.nomColonne = nomColonne;
		this.ancienneValeur = ancienneValeur;
	}
 
	/**
         * @param nomColonne
         *            the nomColonne to set
         */
	public void setNomColonne(String nomColonne) {
		this.nomColonne = nomColonne;
	}
 
	/**
         * @return the nomColonne
         */
	public String getNomColonne() {
		return nomColonne;
	}
 
	/**
         * @param ancienneValeur
         *            the ancienneValeur to set
         */
	public void setAncienneValeur(String ancienneValeur) {
		this.ancienneValeur = ancienneValeur;
	}
 
	/**
         * @return the ancienneValeur
         */
	public String getAncienneValeur() {
		return ancienneValeur == null ? "" : ancienneValeur;
	}
 
	/**
         * @param nouvelleValeur
         *            the nouvelleValeur to set
         */
	public void setNouvelleValeur(String nouvelleValeur) {
		this.nouvelleValeur = nouvelleValeur;
	}
 
	/**
         * @return the nouvelleValeur
         */
	public String getNouvelleValeur() {
		return nouvelleValeur == null ? "" : nouvelleValeur;
	}
 
	/**
         * @param libelleColonne the libelleColonne to set
         */
	public void setLibelleColonne(String libelleColonne) {
		this.libelleColonne = libelleColonne;
	}
 
	/**
         * @return the libelleColonne
         */
	public String getLibelleColonne() {
		return libelleColonne;
	}
}
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
 
public class RecyclageDto {
 
	/** Log4j. */
	private static final Logger LOGGER = Logger.getLogger(RecyclageDto.class);
 
 
 
	private String libelleObjmetier = "-";
 
	private List<ColonneDto> colonneEns = new ArrayList<ColonneDto>();
 
	/**
         * @param colonneDto
         */
	public void addColonne(ColonneDto colonneDto) {
		if (colonneEns == null) {
			colonneEns = new ArrayList<ColonneDto>();
		}
 
		colonneEns.add(colonneDto);
 
	}
 
	public String getLibelleObjmetier() {
		return libelleObjmetier;
	}
 
	public void setLibelleObjmetier(String libelleObjmetier) {
		this.libelleObjmetier = libelleObjmetier;
	}
 
	public List<ColonneDto> getColonneEns() {
		return colonneEns;
	}
 
	public void setColonneEns(List<ColonneDto> colonneEns) {
		this.colonneEns = colonneEns;
	}
 
 
}
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
 
 
public class RecyclagesogmDto {
 
	/** Log4j. */
	private static final Logger LOGGER = Logger.getLogger(RecyclagesogmDto.class);
 
	private Long nsuSom = new Long(-1);
 
	private String libelleObjmetier = "-";
	private String libelleSSobjmetier = "-";
 
	private Long nsuOgm = new Long(-1);
 
	private List<RecyclageDto> recyclageLst = new ArrayList<RecyclageDto>();
 
	/**
         * @param nsuSom
         * @param libelleObjmetier
         * @param libelleSSobjmetier
         * @param recyclageLst
         */
	public RecyclagesogmDto() {
 
	}
 
	/**
         * @param nsuSom
         * @param libelleObjmetier
         * @param libelleSSobjmetier
         * @param setRecyclage
         */
	public RecyclagesogmDto(Long nsuSom, String libelleObjmetier, String libelleSSobjmetier, List<RecyclageDto> recyclageLst) {
		super();
		this.nsuSom = nsuSom;
		this.libelleObjmetier = libelleObjmetier;
		this.libelleSSobjmetier = libelleSSobjmetier;
		this.recyclageLst = recyclageLst;
	}
 
	/**
         * @param colonneDto
         */
	public void addRecyclage(RecyclageDto recyclageDto) {
		if (recyclageLst == null) {
			recyclageLst = new ArrayList<RecyclageDto>();
		}
 
		recyclageLst.add(recyclageDto);
	}
 
	/**
         * @return the libelleSSobjmetier
         */
	public String getLibelleSSobjmetier() {
		return libelleSSobjmetier;
	}
 
	/**
         * @return the libelleObjmetier
         */
	public String getLibelleObjmetier() {
		return libelleObjmetier;
	}
 
	/**
         * @return the nsuSom
         */
	public Long getNsuSom() {
		return nsuSom;
	}
 
	public void setNsuSom(Long nsuSom) {
		this.nsuSom = nsuSom;
	}
 
	public void setLibelleObjmetier(String libelleObjmetier) {
		this.libelleObjmetier = libelleObjmetier;
	}
 
	public void setLibelleSSobjmetier(String libelleSSobjmetier) {
		this.libelleSSobjmetier = libelleSSobjmetier;
	}
 
	/**
         * @param nsuOgm
         *            the nsuOgm to set
         */
	public void setNsuOgm(Long nsuOgm) {
		this.nsuOgm = nsuOgm;
	}
 
	/**
         * @return the nsuOgm
         */
	public Long getNsuOgm() {
		return nsuOgm;
	}
 
	public List<RecyclageDto> getRecyclageLst() {
		return recyclageLst;
	}
 
	public void setRecyclageLst(List<RecyclageDto> recyclageLst) {
		this.recyclageLst = recyclageLst;
	}
 
}

donc dans mon action form j'ai une liste de RecyclagesogmDto
qui contiennent chacun une liste de RecyclageDto, qui contient une liste de
colonne

voici la 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
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
 
	<table width="95%" cellspacing="0" cellpadding="0" border="0" class="blockSaisie">
 
			<tr class="titreBlockSaisie">
				<td align="left" class="titreBlockSaisie" colspan="1">
					<span	class="libelleInput">
						<bean:message	bundle="ec00101RechercheRejets" key="Titre_de_la_partieR" />
					</span>
				</td>
			</tr>
 
 
	     <!-- MESSAGES D'ERREUR ET D'INFO GLOBAUX  BEGIN-->
		<logic:messagesPresent message="true">
               <tr>
                  <td align="center" class="txtRouge">
                      <html:messages id="error" message="true">
                        <bean:write name="error" /><br>
                     </html:messages>
                  </td>
               </tr> 
      	 		<tr>
         			<td>
         				<html:img height="10" width="1" pageKey="app.img.vide" altKey="app.img.vide.alt"/>
         			</td>
            	</tr>
		  </logic:messagesPresent>
 
 
 
 
<% 
Ec00101RecyclageRejetsForm ec00101RecyclageRejetsForm = (Ec00101RecyclageRejetsForm)session.getAttribute("ec00101RechercheRecyclageForm");
List rejetEnsemble = (List) ec00101RecyclageRejetsForm.getRejetRecyEns();
 
pageContext.setAttribute("rejetEnsemble", rejetEnsemble);		
 		for (Iterator iteratorRejet = rejetEnsemble.iterator(); iteratorRejet.hasNext();) {
  				RecyclagesogmDto recyclageOgmCurrentIterator = (RecyclagesogmDto) iteratorRejet.next();
  				int indexOfRogm = rejetEnsemble.indexOf(recyclageOgmCurrentIterator);
  				pageContext.setAttribute("recyclageOgmCurrentIterator", recyclageOgmCurrentIterator);
  				pageContext.setAttribute("indexOfRogm", indexOfRogm);
%>
 
 
  			<tr>
				<td align="left"  >
					<span	class="libelleInput">
						<bean:message	bundle="ec00101RechercheRejets" key="Titre_partieR" arg0="<%= recyclageOgmCurrentIterator.getLibelleSSobjmetier() %>"  arg1="<%=recyclageOgmCurrentIterator.getLibelleObjmetier() %>"   />
					</span>
				</td>
			</tr>
 
 
 
 
  	<tr class="blockSaisie" align="center" >
			<td width="100%"  >
			<div style="OVERFLOW: auto; WIDTH: 970px;  HEIGHT: 110px" >
 
 
  						<%
  							List rcyLst = recyclageOgmCurrentIterator.getRecyclageLst();
  						pageContext.setAttribute("rcyLst", rcyLst);
 
  						%>
 
 
					<display:table   name="${rcyLst}"   class="displaytag" cellspacing="0" cellpadding="1" id="recyclageDtoIt"     uid="recyclageDtoIt" requestURI="/ec00201RechercheLogsAction.do?dispatch=rechercher&refresh=true" excludedParams="*" style="overflow: auto;width:100%;text-align:center;"  >
							<% 
								RecyclageDto	 recyclageDtoT = (RecyclageDto)recyclageDtoIt;
								pageContext.setAttribute("recyclageDtoT", recyclageDtoT);
	  						%>				
 
 
 
						<display:column property="libelleCourtEtatRecyclage"       titleKey="ec00101RechercheRejets.recyclage" class="center"  sortable="true"/>
						<display:column property="libelleCourtGravite"       titleKey="ec00101RechercheRejets.criticite" class="center"  sortable="true"/>
						<display:column property="libelleRegle"      titleKey="ec00101RechercheRejets.regle" class="center"  sortable="true"/>
 
						<display:column    property="libelleApplication"  class="center"  titleKey="ec00101RechercheRejets.source" sortable="true" />
 
		<%
		List colonneEnsemble = recyclageDtoT.getColonneEns(); 
 
		pageContext.setAttribute("colonneEnsemble", colonneEnsemble);
 
 
 
	 							%>	 							
 
	 								<logic:iterate id="colonneDtoIt"  name="colonneEnsemble" indexId="idCol"  >
					             <% 
					         		    ColonneDto colonneDtoCurrent = (ColonneDto)colonneDtoIt;
 
					         	if (colonneDtoCurrent != null) {
					             %>   
 
					<display:column   title="<%=colonneDtoCurrent.getLibelleColonne() %>" class="center"   sortable="true"  >
 
						<nested:text name="rejetEnsemble" indexed="true" property="colonneDtoIt[${idCol}].nouvelleValeur"  />
					</display:column>
								<%} %>
									</logic:iterate> 
 
 
 
					<br/>
				</display:table>
			</div>		
		</td>
	</tr>
 
 
	<%} %>
	</table>

le probleme se situe sur l'ecriture des html:text, là j'ai tenter un nested:text mais c'est pareil.

j'obtient l'erreur :
No getter method for property: "colonneDtoIt[0].nouvelleValeur" of bean: "rejetEnsemble"

mais j'ecris <text:text name="colonneDtoIt" indexed="true" property="nouvelleValeur" /> et

public ColonneDto getColonneDtoIt(int i) dans mon Action Form (inspirer de la FAQ du forum)

cela fonctionne superbement SAUF que j'ai plusieurs liste de colonnes et je ne sais pas comment ecrire mon getter dans le action Form pour lui dire que c'est la liste numero x, et l'element Y

merci pour votre aide