Maison > Java > javaDidacticiel > le corps du texte

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

DDD
Libérer: 2024-11-21 10:23:10
original
265 Les gens l'ont consulté

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) { ... }
Copier après la connexion

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) { ... }
Copier après la connexion
Copier après la connexion

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) { ... }
Copier après la connexion
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal