Analyse d'objets complexes à partir de GET @RequestParam dans Spring MVC
Considérez un scénario dans lequel vous devez implémenter un formulaire de filtre dans une page qui interroge un tableau. Les critères de filtre sont soumis à une action du contrôleur via une requête GET, généralement au format : http://foo.com/system/controller/action?page=1&prop1=x&prop2=y&prop3=z.
Pour pour gérer de tels scénarios, Spring MVC vous demande généralement de définir une méthode de contrôleur avec plusieurs paramètres @RequestParam pour récupérer chaque propriété individuellement :
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, @RequestParam(value = "prop1", required = false) String prop1, @RequestParam(value = "prop2", required = false) String prop2, @RequestParam(value = "prop3", required = false) String prop3) { ... }
Supposons que vous ayez défini une classe MyObject avec les propriétés prop1, prop2 et prop3. Pour simplifier la gestion des paramètres, vous souhaiterez peut-être lier toutes les propriétés de la requête directement à une instance de MyObject.
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
La liaison à des objets complexes peut-elle être réalisée ?
Oui, il est possible de lier des paramètres de requête à des objets complexes à l'aide de Spring MVC.
Comment se lier à un complexe Objets
Pour réaliser cette liaison, supprimez simplement l'annotation @RequestParam du paramètre d'objet :
@RequestMapping(value = "/action") public @ResponseBody List<MyObject> myAction( @RequestParam(value = "page", required = false) int page, MyObject myObject) { ... }
Avec cette modification, Spring MVC liera automatiquement les valeurs du paramètre de requête au propriétés correspondantes de l'instance MyObject.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!