Maison > Java > javaDidacticiel > le corps du texte

Comment renvoyer une erreur HTTP 400 « Bad Request » dans les méthodes Spring MVC @ResponseBody ?

Patricia Arquette
Libérer: 2024-11-06 02:02:02
original
149 Les gens l'ont consulté

How to Return an HTTP 400

Comment gérer les erreurs HTTP dans les méthodes Spring MVC @ResponseBody

Problème :

Quand en utilisant Spring MVC avec une approche @ResponseBody, comment une méthode peut-elle répondre avec une erreur HTTP 400 « mauvaise demande » si une condition particulière n'est pas remplie ?

Solution :

Approche originale :

Le code d'origine a tenté de renvoyer une chaîne si la condition n'était pas remplie, ce qui n'est pas réalisable puisque @ResponseBody attend un objet ResponseEntity :

<code class="java">@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // TODO: how to respond with e.g. 400 "bad request"?
    }
    return json;
}</code>
Copier après la connexion

Solution :

Modifiez le type de retour de la méthode en ResponseEntity, où T est le type de réponse attendu. Cela vous permet d'exploiter l'énumération HttpStatus pour spécifier le code d'état HTTP :

<code class="java">@ResponseBody
public ResponseEntity<String> match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    }
    return new ResponseEntity<>(json, HttpStatus.OK);
}</code>
Copier après la connexion

Pour une alternative plus propre après Spring 4.1, utilisez les méthodes d'assistance dans ResponseEntity :

<code class="java">@ResponseBody
public ResponseEntity<String> match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
    }
    return ResponseEntity.ok(json);
}</code>
Copier après la connexion

Cette approche permet le retour d'un code d'état HTTP et d'un contenu appropriés en fonction du résultat de l'exécution.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!