問題描述
在使用若依分離版框架進(jìn)行開發(fā)時(shí),前端向后端傳遞數(shù)據(jù),但在后端獲取的數(shù)據(jù)顯示為NULL。具體來說,前端通過post請(qǐng)求傳遞了id和status參數(shù),但后端在接收這些參數(shù)時(shí),發(fā)現(xiàn)它們的值為null,導(dǎo)致無法正確處理請(qǐng)求。
前端代碼
前端的代碼如下,用于修改訂單狀態(tài):
//修改訂單狀態(tài) export function updatorderstatus(id,status){ const data={ id, status } return request({ url:"/business/orderinfo/updatestate", method:"post", data:data }) }
前端傳遞的參數(shù)如圖所示:
[傳遞參數(shù)截圖]
后端處理代碼
后端處理代碼如下,旨在接收前端發(fā)送的id和status參數(shù),并據(jù)此更新訂單狀態(tài):
@apioperation("訂單管理-修改訂單狀態(tài)") @apiimplicitparams({ @apiimplicitparam(name="id",value = "主鍵id",required = true,datatype = "integer"), @apiimplicitparam(name="status",value = "狀態(tài)0進(jìn)行1結(jié)束",required = true,datatype = "integer") }) // @log(title = "訂單管理-訂單列表", businesstype = businesstype.other) @postmapping("/updatestate") public ajaxresult updatestate(integer id,integer status) { system.out.println("更改訂單編號(hào):"+id+"n"); system.out.println("更改訂單狀態(tài):"+status+"n"); if(objects.isnull(id)){ return ajaxresult.error("輸入主鍵id"); } if(objects.isnull(status)){ return ajaxresult.error("輸入狀態(tài)"); } borderinfo borderinfo=new borderinfo(); borderinfo.setid(id); borderinfo.setstatus(status); system.out.println("更改訂單狀態(tài):"+borderinfo.tostring()+"n"); orderinfoserviceimpl.update(borderinfo); return ajaxresult.success(); }
后端打印結(jié)果如下:
[后端打印結(jié)果截圖]
立即學(xué)習(xí)“前端免費(fèi)學(xué)習(xí)筆記(深入)”;
問題分析與解決
從上述代碼和打印結(jié)果可以看出,后端接收到的id和status參數(shù)均為null。這是因?yàn)楹蠖说膗pdatestate方法在接收參數(shù)時(shí),沒有明確指定使用@requestparam注解來接收請(qǐng)求體中的參數(shù)。
解決方法是修改后端代碼中的updatestate方法,在參數(shù)前添加@requestparam注解,以便正確接收前端通過post請(qǐng)求傳遞的參數(shù)。修改后的代碼如下:
public AjaxResult updateState(@RequestParam Integer id, @RequestParam Integer status) { // ... 其他代碼保持不變 }
通過這一修改,后端可以正確接收前端傳遞的id和status參數(shù),從而解決數(shù)據(jù)顯示為null的問題。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END