Pourquoi tu veux faire plusieurs formulaires ?
Tu peux utiliser l'astuce suivante :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <%
int indexLigne = 0;
%>
<logic:iterate name="monTableau" id="maLigne">
<%
int indexColonne = 0;
%>
<logic:iterate name="maLigne" id="maColonne">
<input type="text" name="mesColonnes[<%= indexLigne * 1000 + indexColonne %>].valeur" value="<%bean:write name="maColonne" />" />
<%
indexColonne++;
%>
</logic:iterate>
<%
indexLigne++;
%>
</logic:iterate> |
Dans ton FormBean tu déclares un objet de type List s'appelant monTableau et qui contiendra une liste de liste d'objets de type MonHelper et tu définis deux méthodes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public MonHelper getMesColonnes(int pIndex) {
if (getMonTableau() == null) {
setMonTableau(new ArrayList());
}
int lIndexColonne = Math.IEEERemainder(pIndex,1000);
int lIndexLigne = (pIndex - lIndexColonne)/1000;
int lDifferenceLigne = lIndexLigne - getMonTableau().size() + 1;
for(int lIndex = lDifferenceLigne; lIndex > 0; lIndex--) {
getMonTableau().add(new ArrayList());
}
List lListeColonnes = (List)getMonTableau().get(lIndexLigne);
int lDifferenceColonne = lIndexColonne - lListeColonnes.size() + 1;
for(int lIndex = lDifferenceColonne; lIndex > 0; lIndex--) {
lListeColonnes.add(new MonHelper());
}
return (MonHelper)lListeColonnes.get(lIndexColonne);
} |
Maintenant tu peux accéder à la valeur saisie dans la troisième colonne de la deuxième ligne en faisant :
((MonHelper)((List)monFormBean.getMonTableau().get(2)).get(3)).getValeur()
Je n'ai pas testé la solution mais globalement l'idée est là. C'est moche mais ca fonctionne.
Partager