Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Ralat HTTP 400 dalam Kaedah Spring MVC @ResponseBody dengan Jenis Pulangan Rentetan?

Bagaimana untuk Mengendalikan Ralat HTTP 400 dalam Kaedah Spring MVC @ResponseBody dengan Jenis Pulangan Rentetan?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 02:30:01424semak imbas

How to Handle HTTP 400 Errors in Spring MVC @ResponseBody Methods with String Return Type?

Pengendalian Ralat HTTP 400 dalam Kaedah @ResponseBody Spring MVC dengan Jenis Pulangan Rentetan

Apabila melaksanakan API menggunakan Spring MVC, adalah penting untuk mengendalikan kesilapan dengan anggun. Satu kod ralat biasa untuk dibalas ialah HTTP 400, yang menunjukkan "permintaan buruk."

Dalam senario yang anda berikan, di mana kaedah padanan mengembalikan String yang dibalut dengan @ResponseBody, anda mungkin tertanya-tanya bagaimana untuk bertindak balas dengan HTTP 400 kod ralat. Pendekatan tradisional menggunakan ResponseEntity tidak terpakai secara langsung di sini, kerana jenis pemulangan kaedah anda ialah String.

Untuk menyelesaikan masalah ini, pertimbangkan untuk menukar jenis pemulangan kaedah padanan anda kepada ResponseEntity. Ini akan memberi anda fleksibiliti untuk mengendalikan kod status HTTP dengan lebih jelas.

Kaedah Kemas Kini:

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@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>

Pendekatan yang diubah suai ini membolehkan anda mengembalikan ResponseEntity dengan kod status HTTP yang sesuai. Jika matchId tidak sah, anda boleh mengembalikan ResponseEntity dengan status HTTP 400. Untuk permintaan yang sah, anda boleh mengembalikan ResponseEntity dengan status HTTP 200 dan respons JSON.

Spring 4.1 dan Ke Atas:

Bermula dengan Spring 4.1, kelas ResponseEntity menyediakan kaedah pembantu yang boleh anda gunakan untuk pendekatan yang lebih ringkas:

Kaedah Kemas Kini (Musim Bunga 4.1 ):

<code class="java">@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@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>

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat HTTP 400 dalam Kaedah Spring MVC @ResponseBody dengan Jenis Pulangan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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