Bonjour,

Je coince sur un problème concernant les radio depuis un petit moment.
Pour faire simple, j'ai un groupe de radio dans mon formulaire, que je récupère via une liste à partir de ma base de donnée.

Le groupe de radio permet de selectionner un SocialTitle.
Voici mes sources :

SocialTitle.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
public class SocialTitle extends BaseModel {
 
	private Integer id;
	private String label;
	private String name;
 
        + mapping, getters et setters sur tous les champs
}
Mon action qui fourni les données de base et qui sera étendues par mes autres actions :

ClientAction.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
 
public abstract class ClientAction extends BaseAction implements Preparable {
	private List<SocialTitle> socialTitles;
	private User user;
 
        + getters et setters
 
	public void prepare() throws Exception {
		// nouveau user pour l'inscription
		user = new User();
 
                // liste des titres sociaux		
		socialTitles = SocialTitleManager.getInstance().getAllOrderByName();
	}
}
J'ai ensuite une action qui sert à afficher le formulaire qui étend de la précédente classe:

InscriptionAction.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public class InscriptionAction extends ClientAction {
         public String execute { ... }
}
Et l'action qui traite le formulaire envoyé qui étend également de ClientAction : InscriptionSaveAction.java

Enfin la jsp qui contient le formulaire et qui est appelée par ces 2 actions :

client-form.jsp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
	<s:form namespace="/client" action="inscription-save" method="post"
		theme="simple" >
 
                ....
 
		<s:radio name="user.socialTitle"
        		list="socialTitles" listValue="name" listKey="id"/>
 
                ....
 
                <s:submit value="%{getText('form.register.submit')}" />
        </s:form>
Ah et j'oubliais ma classe User contient un attribut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
private SocialTitle socialTitle;
correctement mappé avec le setter et getter.

Toutes ces explications pour vous dire que quand je submit mon formulaire, j'ai un message d'erreur pour mon champs user.socialTitle :
Invalid field value for field "social".

Et le message d'erreur tiré d'Eclipse :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ognl.MethodFailedException: Method "setSocialTitle" failed for object fr.lukasp.development.actions.client.InscriptionSaveAction@256b4372 [java.lang.NoSuchMethodException: setSocialTitle([Ljava.lang.String;)]
Si je comprend bien, struts 2 ne veut pas directement setter mon objet à partir de l'id récupéré du formulaire. Mais pourtant je suis sur que ca doit se faire non ?

Quel est mon oubli ou mon erreur ?

Merci pour votre aide,
Lukas