亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過springboot發送400/500/404響應錯誤

如何通過springboot發送400/500/404響應錯誤

萬千封印 2023-10-13 16:24:04
@PutMapping("/createUser")public String createUser(@RequestBody User user) {    User thisValue = repository.findByUsername(user.getUsername());    if thisValue != null {        sendResponseHeaders(400, -1); // wont work        return "account exist";    }    sendResponseHeaders(200, -1); // wont work    return "reached here";}我之前使用的 com.sun.httpserver 有一個 sendResponseheaders 方法,但我在 springboot 上找不到它。有什么辦法可以實現這一點嗎?基本上就是我想要的。如果我發送帶有存在的用戶名的 json 請求正文,則應發生 400 響應錯誤
查看完整描述

3 回答

?
九州編程

TA貢獻1785條經驗 獲得超4個贊

您可以使用org.springframework.http.ResponseEntity.


<dependency>

? ? <groupId>org.springframework.boot</groupId>

? ? <artifactId>spring-boot-starter-web</artifactId>

? ? <version>x.x.x.RELEASE</version>

</dependency>

像這樣。


@PutMapping("/createUser")

public ResponseEntity createUser(@RequestBody User user) {

? ? User thisValue = repository.findByUsername(user.getUsername());

? ? if (thisValue != null) {

? ? ? ? return ResponseEntity.badRequest().build();

? ? }

? ? return ResponseEntity.ok().build();

}


查看完整回答
反對 回復 2023-10-13
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

除了返回顯式 之外ResponseEntity,您還可以拋出在類級別用 注釋的異常(或允許異常轉義)@ResponseStatus。默認的 Spring MVC 配置將攔截來自控制器方法的任何異常,如果沒有注釋,則返回 HTTP 500(一般“服務器錯誤”);如果有,則返回指定的狀態。



查看完整回答
反對 回復 2023-10-13
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

在普通控制器中:


@PutMapping("/createUser")

public ModelAndView createUser(@RequestBody User user) {

    ModelAndView mv= new ModelAndView("reached-here");

    User thisValue = repository.findByUsername(user.getUsername());

    if (thisValue != null) {

        model.setStatus(HttpStatus.BAD_REQUEST);

        model.setValueName("account-exist");

    }else{

        model.setStatus(HttpStatus.OK);

    }

    return mv;

}

在 REST 控制器中:


@PutMapping("/createUser")

public ResponseEntity<String> createUser(@RequestBody User user) {

    User thisValue = repository.findByUsername(user.getUsername());

    if (thisValue != null) {

        return new ResponseEntity<String>("account-exist", HttpStatus.BAD_REQUEST);

    }else{

        return new ResponseEntity<String>("reached here", HttpStatus.OK);

    }

}


查看完整回答
反對 回復 2023-10-13
  • 3 回答
  • 0 關注
  • 267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號