簡體   English   中英

如何從AngularJS接收Spring MVC中的混合參數?

[英]How do I receive mixed params in Spring MVC from AngularJS?

我需要將json對象和字符串作為參數傳遞給Java控制器。

這是我正在嘗試的方法,但在控制器中得到url = ""

  1. 這是為什么?
  2. 如何實現呢?

 $scope.executeRequest = function(){ var url = "http://"+$scope.data.serverIP+":"+$scope.data.serverPort; $http.post('/admin/executeRequest/',JSON.parse($scope.data.request),url).success(function(data){ $scope.data.response = data; }).error( function ( data, status ) { $log.info("getting request object for api from server : failure"); if ( status === 403 ) { $scope.show403( data ); } }); }; 

@RequestMapping(value="/admin/executeRequest/",method=RequestMethod.POST)
@ResponseBody
public ProductCategoryResponse executeRequest(@RequestBody ProductCategoryRequest request, String url){

將URL附加到URL參數,然后在請求正文中發送$ scope.data.request。

    $scope.executeRequest = function(){
        var url = "http://"+$scope.data.serverIP+":"+$scope.data.serverPort;
        $http.post('/admin/executeRequest?url=' + encodeURIComponent(url), $scope.data.request).success(function(data){
            $scope.data.response = data;
        }).error( function ( data, status ) {
            $log.info("getting request object for api from server : failure");
            if ( status === 403 ) {
                $scope.show403( data );
            }
        });
    };

然后像這樣更改您的Java控制器。

    @RequestMapping(value="/admin/executeRequest/",method=RequestMethod.POST)
    @ResponseBody
    public ProductCategoryResponse executeRequest(@RequestBody ProductCategoryRequest request, @RequestParam String url){

有關詳細信息,請參閱Spring文檔@RequestParam。

@RequestMapping(value = {"/admin/executeRequest_parentcategories", "/admin/executeRequest_subcategories"}, method = RequestMethod.POST)
@ResponseBody
public ProductCategoryResponse executeProductCategoryRequest(@RequestParam(value = "url") String url,
        @RequestParam(value = "api") String api, @RequestBody ProductCategoryRequest request) {

和http調用類似:

        var url = '/admin/executeRequest_parentcategories+'?url=http://'+$scope.data.serverIP+":"+$scope.data.serverPort+"&api="+$scope.data.apiSelected;
    $http.post(url,JSON.parse($scope.data.request)).success(function(data){

謝謝sohan的幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM