Rumah >Java >javaTutorial >Bagaimana untuk Mengendalikan Ralat HTTP 400 dalam Kaedah Spring MVC @ResponseBody dengan Jenis Pulangan Rentetan?
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
Untuk menyelesaikan masalah ini, pertimbangkan untuk menukar jenis pemulangan kaedah padanan anda kepada ResponseEntity
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!