Maison  >  Article  >  Java  >  Comment puis-je lier des objets complexes à partir des paramètres de requête GET dans Spring MVC ?

Comment puis-je lier des objets complexes à partir des paramètres de requête GET dans Spring MVC ?

DDD
DDDoriginal
2024-11-21 10:23:10265parcourir

How Can I Bind Complex Objects from GET Request Parameters in Spring MVC?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn