Salut à tous,
Un petit problème avec Struts2 (version 2.3.4.1) et le plugin JSON, j'ai une classe d'action qui ressemble à ce qui vient dessous :
J'essaye de renvoyer en JSON un objet de type Resultat, c'est une classe de test avec juste un attribut privé de type String qui a des getter et setter normalisés.
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 package fr.apps.controller.administration; /** * Profil de l'utilisateur. */ public class Profil extends AbstractAJAXAction { /** * Utilisateur */ private NewUtilisateur newUtilisateur; /** * Resultat de l'action. */ private Resultat result; /** * Méthode de l'action AJAX save. * * @return nom du retour */ public String save() { //...Traitement de la sauvegarde } /** * Retourne le nouvel utilisateur. * * @return nouvel utilisateur */ public NewUtilisateur getNewUtilisateur() { return this.newUtilisateur; } /** * Modifie le nouvel utilisateur. * * @param newUtilisateur * nouvel utilisateur */ public void setNewUtilisateur(final NewUtilisateur newUtilisateur) { this.newUtilisateur = newUtilisateur; } /** * Retourne le résultat de l'action. * * @return résultat */ public Resultat getResult() { return this.result; } /** * Modifie le résultat de l'action. * * @param result * résultat */ public void setResult(final Resultat result) { this.result = result; } }
L'action struts est configurée de la manière qui suit :
Dans la méthode save, j'instancie un objet Resultat, je set l'attribut à une valeur quelconque et je retourne la chaîne jsonResult pour un retour JSON. Aucune exception est retournée, le retour se fait bien mais le résulat est vide [JSON]{"result":{}}.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <action name="save" class="fr.apps.controller.administration.Profil" method="save"> <result name="jsonResult" type="json"> <param name="includeProperties">result</param> </result> </action>
J'aurai voulu savoir si j'oublis quelque chose parce que j'avoue que la doc Struts n'est pas très explicite. J'ai essayé de la même manière avec le paramètre "root" au lieu de "inclueProperties" mais rien non plus. Par contre aucun problème quand result est de type String directement et non pas un objet tierce.
Si vous avez une idée ou si j'ai fait une connerie, n'hésitez pas.
Merci d'avance.
MattU
Partager