springboot中PostMapping正常接收json參數(shù)后返回404問題_第1頁
springboot中PostMapping正常接收json參數(shù)后返回404問題_第2頁
springboot中PostMapping正常接收json參數(shù)后返回404問題_第3頁
springboot中PostMapping正常接收json參數(shù)后返回404問題_第4頁
springboot中PostMapping正常接收json參數(shù)后返回404問題_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第springboot中PostMapping正常接收json參數(shù)后返回404問題目錄PostMapping接收json參數(shù)后返回404問題描述解決@PostMapping注解解析

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

問題描述

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

js

functionrootConfirm(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")

publicResponseVOrootConfirmOrder(Long[]ids,String[]types){

if(ids==null||types==null)

returnResultUtil.error(500,"請至少選擇一個訂單");

for(inti=0;iids.length;i++){

/*可以正常打印*/

System.out.println(""+ids[i]+":"+types[i]);

returnResultUtil.success("成功結束["+ids.length+"]個訂單");

}

解決

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

補充

@RestController

這個注解相當于@ResponseBody和@Controller兩個注解的組合,不返回視圖,只返回數(shù)據(jù)。如果一個類上加了這個注解,那么這個類的函數(shù)都是返回不了視圖的,returnredirect:/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是一個復合注解,Springframework4.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@interfacePostMapping{

/**

*RequestMapping的別名,

*/

@AliasFor(annotation=RequestMapping.class)

Stringname()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=Request

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論