Spring MVC retour JSONS et la gestion des exceptions
Je suis à l'aide de Spring MVC avec les Contrôleurs, ma question est comment puis-je retourner une réponse JSON qui est différent de l' @ResponseBody objet qui est retourné et convereted à un JSON à être retourné.
De fournir plus de précisions, j'ai l'objet appelé "UserDetails" qui a deux champs "nom", "adresse"
@ResponseBody UserDetails
maintenant le json retourné ressemblera
{ nom : "TheUsersName",
e-mail:"[email protected]" }
Est-il possible que je peux modifier le json avant de retourner (TOUS les jsons dans toutes les méthodes dans tous les contrôleurs) où un champ "statut" seront ajoutés et les autres données json sera sous les "données" de la clé dans le json.
Aussi comment puis-je retourner un json à l'interface lorsque le serveur java à partir de quelque part lève une exception, le json doit avoir un statut": false," et le nom de l'exception (au moins le statut de partie)
OriginalL'auteur MilindaD | 2011-03-22
Vous devez vous connecter pour publier un commentaire.
Oui. De retour d'un modèle et d'une vue sur la place.
Pour ajouter l'exception que vous le ferais de la même manière avec une clé et de réussite = false.
ModelAndView
ajoute ici. Pourquoi ne pas simplement retourner leModelMap
?Je ne suis pas sûr de pourquoi je veux utiliser un ModelAndView cependant vous m'avez donné l'idée d'utiliser une carte (HashMap) qui a fonctionné comme un charme et m'a donné le résultat souhaité. Cependant comment puis-je faire de même dans un échec de scénario? Cependant, toute idée d'un moyen de centraliser ce pour tous les contrôleurs et toutes les fonctions des contrôleurs?
Vous avez raison. Pet cerveau de retourner points de vue. @milindaD ModelMap ne nécessite pas de touches, mais pas très différents. Il met en œuvre la Carte.
OriginalL'auteur Robby Pond
Créer une classe de réponse:
Puis retour à partir de votre contrôleurs:
Pour l'exception que vous aurez envie de retourner un objet comme:
OriginalL'auteur sourcedelica
Une autre solution (qui fonctionne avec le printemps 3.1), ce qui est moins invasive
dans votre printemps config :
L'idée est de fournir à votre propre HttpMessageConverter que les délégués à la condition jackson convertisseur.
De cette façon, tous vos objets pojo sont enveloppés avec quelques autres json que vous fournissez.
Pour les exceptions, la solution proposée par ericacm est la solution la plus simple (n'oubliez pas d'annoter le "BadStatus' type de retour avec @ResponseBody).
Une mise en garde : votre json-sérialisé BadStatus passe par MyMessageConverter trop, de sorte que vous aurez envie de tester pour le type d'objet dans le remplacé en "écriture" de la méthode, ou ont MyPojoWrapper poignée.
OriginalL'auteur Pablo Abreu