Bonjour.

Je suis confonté à un problème, et je ne vois pas trop comment le résoudre pour l'instant.
Pour info, j'utilise struts 2, mais je ne pense pas que ca soitlié.

Prenons l'exemple de deux classes :
la classe Activité a plusieurs attributs de la forme suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
String a;
String b;
Navire navire
;

la classe Navire a plusieurs attributs :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
int naId
String naCode
String naNomNavire
J'ai une page java sur laquelle j'affiche une liste d'Activité
colonne 1 | colonne 2 | colonne 3
activite1.a | activite1.b | activite1.navire.libelle
activite2.a | activite2.b | activite2.navire.libelle

A ce niveau, chaque objet activité de ma liste a tout ses attributs de renseignés (notamment l'attribut navire)


Mon souhait est de pouvoir modifier chaque ligne, j'ai donc un lien vers un formulaire qui charge l'objet "activite" sélectionné
Sur ce formulaire, je dois pouvoir :
- modifier la valeur de "a"
- rien faire sur "b"
- modifier le navire sélectionné via une liste déroulante

J'ai donc :
- un champs "a" pour pouvoir modifier sa valeur
- une liste déroulante pouvoir sélectionner un autre navire comme cela
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<s:select name="activite.navire.naId" 
                          list="listeNavire"
                          listKey="naId"
                          listValue="naNomNavire"
                          />
qui se transforme en html en
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<select name="activite.navire.naId">
    <option value=""></option>
    <option value="1">navire1</option>
    <option value="2">navire2</option>
 
</select>
Au moment de la validation du formulaire, je récupère donc dans le java un objet "activite" qui a sa valeur "a" renseignée, sa valeur "b" non renseignée, et l'objet activite.navire "à moitié renseigné" avec uniquement l'id correspondant au "option value"

Pouvez vous me confirmer que pour garder toutes les valeurs non saisies (non affichées) sur le formulaire (dans le cas ci-dessus "b"), il faut passer par des champs hidden --> je pense que c'est la solution, mais cela veut-il dire que si j'ai 30 attributs dans mon objet dont que quelques-uns 3 modifiables, il faut mettre tout le reste en hidden?

Deuxièmement : quid des listes déroulantes : Faut-il dans le java (à la validation) recharger complètement l'objet "navire" à partir de l'id sélectionné dans la liste déroulante ou y-a-t-il une solution qui se charge de faire cela tout seul?

Merci d'avance pour vos réponses pouvant m'éclaircir.

Johann