Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengembalikan Ralat HTTP 400 daripada Spring MVC @ResponseBody Methods Mengembalikan Rentetan?

DDD
Lepaskan: 2024-11-01 12:15:30
asal
755 orang telah melayarinya

How to Return HTTP 400 Errors from Spring MVC @ResponseBody Methods Returning Strings?

Mengendalikan Ralat HTTP 400 dalam Spring MVC @ResponseBody Methods Returning String

Dalam Spring MVC, adalah perkara biasa untuk menggunakan @ResponseBody untuk API JSON. Walau bagaimanapun, ralat pengendalian boleh menjadi mencabar apabila kaedah mengembalikan String. Artikel ini meneroka cara paling mudah untuk bertindak balas dengan ralat HTTP 400 dalam senario sedemikian.

Dalam contoh yang disediakan:

@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@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;
}
Salin selepas log masuk

Untuk mengembalikan ralat HTTP 400, pendekatan paling mudah ialah mengubah suai jenis pulangan kaedah kepada ResponseEntity<>. Ini akan membolehkan anda menggunakan kod berikut untuk 400 respons:

return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
Salin selepas log masuk

Untuk permintaan yang berjaya, anda boleh menggunakan:

return new ResponseEntity<>(json, HttpStatus.OK);
Salin selepas log masuk

Sebagai alternatif, untuk Spring 4.1 dan lebih baru, anda boleh memanfaatkan kaedah pembantu dalam ResponseEntity:

return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
Salin selepas log masuk

Dan untuk permintaan yang berjaya:

return ResponseEntity.ok(json);
Salin selepas log masuk

Dengan menggunakan ResponseEntity<>, anda boleh mengendalikan ralat HTTP dengan mudah dalam kaedah @ResponseBody anda sambil mengekalkan kaedah yang mudah dan pelaksanaan yang bersih.

Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Ralat HTTP 400 daripada Spring MVC @ResponseBody Methods Mengembalikan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan