欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot中PostMapping正常接收json參數(shù)后返回404問題

 更新時間:2022年05月06日 16:47:53   作者:陸沙  
這篇文章主要介紹了springboot中PostMapping正常接收json參數(shù)后返回404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

PostMapping接收json參數(shù)后返回404

問題描述

js中傳遞json數(shù)據(jù)給后端,后端可以正常接收參數(shù),但返回404。

js

? ? ? ? ? ? ? ? function rootConfirm(ids, types) {
? ? ? ? ? ? ? ? ? ? $.tool.confirm("確定結束" + options.modalName + "?", function () {
? ? ? ? ? ? ? ? ? ? ? ? $.ajax({
? ? ? ? ? ? ? ? ? ? ? ? ? ? type: "post",
? ? ? ? ? ? ? ? ? ? ? ? ? ? url: options.confirmUrl,
? ? ? ? ? ? ? ? ? ? ? ? ? ? traditional: true,
? ? ? ? ? ? ? ? ? ? ? ? ? ? data: {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'ids': ids,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 'types': types
? ? ? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? ? ? success: function (json) {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? $.tool.ajaxSuccess(json);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? $.tableUtil.refresh();
? ? ? ? ? ? ? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? ? ? ? ? ? ? error: $.tool.ajaxError
? ? ? ? ? ? ? ? ? ? ? ? });
? ? ? ? ? ? ? ? ? ? }, function () {}, 5000);
? ? ? ? ? ? ? ? }

后臺

?@RequiresPermissions(value = {"root_orders:confirm", "root_orders:batchConfirm"}, logical = Logical.OR)
?@PostMapping(value="/root_orders/confirm")
?public ResponseVO rootConfirmOrder(Long[] ids, String[] types) {
? if (ids == null || types == null)
? ?return ResultUtil.error(500, "請至少選擇一個訂單");
? for (int i = 0; i < ids.length; i++) {
? ?/*可以正常打印*/
? ?System.out.println("" + ids[i] + ":" + types[i]);
? }
? return ResultUtil.success("成功結束 [" + ids.length + "] 個訂單");
?}

解決

添加**@ResponseBody**注解。因為我的函數(shù),所在的類注解是@Controller,但函數(shù)是要返回數(shù)據(jù)而非視圖的。

補充

  • @RestController

這個注解相當于@ResponseBody 和 @Controller兩個注解的組合,不返回視圖,只返回數(shù)據(jù)。如果一個類上加了這個注解,那么這個類的函數(shù)都是返回不了視圖的,return “redirect:/XXX/details”;也會只在頁面上顯示return的字符串。

解決方法是把類上的注解改為@Controller,然后給不返回視圖,只返回數(shù)據(jù)的函數(shù)加上注解@ResponseBody。

@PostMapping注解解析

開發(fā)過程IDEA提示如將

@RequestMapping(value="/abc" , method = “RequestMethod.POST”)

替換成@PostMapping?,F(xiàn)對@PostMapping的實現(xiàn)。

@PostMapping是一個復合注解,Spring framework 4.3引入了@RequestMapping注釋的變體,以更好地表示帶注釋的方法的語義,作為@RequestMapping(method = RequestMethod.POST)的快捷方式。

也就是可以簡化成@PostMapping(value="/abc" )即可,主要是方便識記。

下面很多方法都是對應著@RequestMapping的標記的別名。

@RequestMapping(value = “”, path = “”, params = “”, headers = “”,consumes = “”, produces = “”)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(method = RequestMethod.POST)
public @interface PostMapping {
?? ?/**
?? ? * RequestMapping 的別名,
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String name() default "";
?? ?/**
?? ? *RequestMapping#value的別名, 默認為空字符串,一般需要自己填寫
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] value() default {};
?? ?/**
?? ? * RequestMapping#path的別名
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] path() default {};
?? ?/**
?? ? * RequestMapping#params的別名
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] params() default {};
?? ?/**
?? ? * RequestMapping#headers的別名
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] headers() default {};
?? ?/**
?? ? * RequestMapping#consumes的別名
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] consumes() default {};
?? ?/**
?? ? * RequestMapping#produces的別名
?? ? */
?? ?@AliasFor(annotation = RequestMapping.class)
?? ?String[] produces() default {};
}

其他變體如下:

@GetMapping、@PutMapping、@PatchMapping和@DeleteMapping,與@PostMapping實現(xiàn)類似 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java利用Optional解決空指針異常

    Java利用Optional解決空指針異常

    這篇文章主要介紹了Java利用Optional解決空指針異常,Optional?類是一個包含有可選值的包裝類,這意味著?Optional?類既可以含有對象也可以為空
    2022-09-09
  • 淺談Java動態(tài)代理的實現(xiàn)

    淺談Java動態(tài)代理的實現(xiàn)

    最近,小組同事做代碼改造時,使用到了動態(tài)代理,自己閱讀時,發(fā)現(xiàn)對代理這種設計模式都不怎么清楚,導致理解代碼也很困難 自己唯一能看懂的,大概就是handler中的invoke方法 ,文中作出了非常詳細的介紹,需要的朋友可以參考下
    2021-05-05
  • 新版SpringSecurity安全配置說明

    新版SpringSecurity安全配置說明

    這篇文章主要介紹了新版SpringSecurity安全配置說明,在 Spring Security 5.7.0-M2 中,我們棄用了WebSecurityConfigurerAdapter,因為我們鼓勵用戶轉向基于組件的安全配置,需要的朋友可以參考下
    2023-07-07
  • 基于springboot創(chuàng)建mybatis的完整步驟

    基于springboot創(chuàng)建mybatis的完整步驟

    MyBatis是一款優(yōu)秀的數(shù)據(jù)庫持久層框架,相比Hibernate我更喜歡使用MyBatis,看的到SQL還是讓人更安心點,這篇文章主要給大家介紹了關于基于springboot創(chuàng)建mybatis的完整步驟,需要的朋友可以參考下
    2024-03-03
  • 深入了解JVM字節(jié)碼增強技術

    深入了解JVM字節(jié)碼增強技術

    這篇文章主要介紹了深入了解JVM字節(jié)碼增強技術,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • elasticsearch bucket 之rare terms聚合使用詳解

    elasticsearch bucket 之rare terms聚合使用詳解

    這篇文章主要為大家介紹了elasticsearch bucket 之rare terms聚合使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 基于Lucene的Java搜索服務器Elasticsearch安裝使用教程

    基于Lucene的Java搜索服務器Elasticsearch安裝使用教程

    Elasticsearch也是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,能夠做到實時搜索,且穩(wěn)定、可靠、快速,安裝使用方便,這里我們就來看一下基于Lucene的Java搜索服務器Elasticsearch安裝使用教程:
    2016-06-06
  • Java守護線程和用戶線程的區(qū)別

    Java守護線程和用戶線程的區(qū)別

    這篇文章主要介紹了Java守護線程和用戶線程的區(qū)別,用戶線程和守護線程,默認情況下我們創(chuàng)建的線程或線程池都是用戶線程,所以用戶線程也被稱之為普通線程,下文更多詳細內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • Java 泛型總結(一):基本用法與類型擦除

    Java 泛型總結(一):基本用法與類型擦除

    本文主要介紹了Java泛型的使用以及類型擦除相關的問題。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • Java中用戶線程與守護線程的使用區(qū)別

    Java中用戶線程與守護線程的使用區(qū)別

    這篇文章主要介紹了Java中用戶線程與守護線程的使用區(qū)別,Java語言中無論是線程還是線程池,默認都是用戶線程,因此用戶線程也被成為普通線程,下文關于其與守護線程的區(qū)別詳情,需要的小伙伴可以參考一下
    2022-05-05

最新評論