Required String parameter is not present


2017年06月28日 19:56:25

頁面報Required String parameter ‘loanOrderNbr’ is not present解決辦法

問題描述:

前面代碼(angularjs)

var loanOrderNumber = $routeParams.loanOrderNumber; $scope.saveButton = true; $http.get("/test/business/order/viewDetail",{ params : { 'loanOrderNbr' : loanOrderNbr } }).success(function(request,status){ // }).error(function (data, status) { // });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

后台代碼(spring mvc)

//查看數據 @RequestMapping(value = "/viewDetail") @ResponseBody public AtResponse detail(@RequestParam(name = "loadOrderNbr", required = true) String loadOrderNbr) { Map<String, Object> params = new HashMap<String, Object>(); AtResponse<TxnAcct> resp = new AtResponse(System.currentTimeMillis()); //..... return resp; }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

頁面報錯信息

:8080/test/business/order/viewDetail?loanOrderNbr=201706091042631 Failed to load resource: the server responded with a status of 400 (Bad Request)
  • 1

當時以為是前面angularjs代碼寫得有問題,然而仔細對比其他功能的寫法,發現沒有什么區別,只是傳的參數不一樣而矣,非常迷惑,不解。后台也不報錯(沒有輸出spring日志),然后將請求鏈接直接在瀏覽器中訪問: 
http://localhost:9770/test/business/order/viewDetail?loanOrderNbr=201706091042631

頁面提示如下錯誤信息: 
Required String parameter ‘loanOrderNbr’ is not present

發現是前端傳的參數名與后端代碼定義的參數名不一致導致的,囧:

前端參數是:loanOrderNbr

后端參數是:loadOrderNbr

另:網上有另一解決方法參考

將后台代碼修改為:

@RequestMapping(value = "/viewDetail") @ResponseBody public ResponseBase addQuestion(@RequestBody Map<String,Object> params){ String loanOrderNbr = params.get("loanOrderNbr").toString(); }
  • 1
  • 2
  • 3
  • 4
  • 5
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM