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
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
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
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
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
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 :
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
Partager