【问题标题】:Send array of objects via GET request with Angular's $http to Java Spring使用 Angular 的 $http 通过 GET 请求将对象数组发送到 Java Spring
【发布时间】:2023-03-31 17:55:01
【问题描述】:

我有一个 javascript 变量,它是一个 MyObjects 数组。我可以使用以下代码将此变量显示到视图中:

        <tr ng-repeat="user in lala.users">
            <td>{{ user.firstName }}</td>
            <td>{{ user.lastName }}</td>
        </tr>

现在我正在尝试将此数组发送到服务器。我正在尝试类似:

    lala.send = function() {
        $http({
            method: 'GET',
            url: "http://localhost:8080/server/" + lala.users
        }).then(function successCallback(response) {
            if (response.status == 200) {
                lala.users = response.data
            }
        });
    };

如何将此数组传递给服务器端的列表?到现在为止我有这样的东西。

@RequestMapping(value = "/server/{users}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<List<MyObjects>> transform(@PathVariable("users") String[] users) {
        List<MyObjects> results2 = new ArrayList<>();

        //pass array to a list??

        return new ResponseEntity<>(results2, HttpStatus.OK);
    }

【问题讨论】:

  • 如果你想用get请求发送它,你必须手动拆分它们或以某种方式对其进行编码。最简单的解决方案是将数组包装在 JSON 对象中并将该对象发布到服务器。
  • 你在用spring boot吗?
  • 是的,是弹簧靴。

标签: javascript java angularjs spring http-get


【解决方案1】:

您可以转换字符串并使用分隔符,然后在服务器端解析它。您也可以使用 HttpPost 代替 HttpGet 请求,这样您就可以发送 JSON String 并且更容易解析。

【讨论】:

    【解决方案2】:

    根据 Ranielle 的回答,我继续使用 HttpPost。

    代码如下:

    lala.send = function() {
                $http.post("http://localhost:8080/server", lala.users ) 
                .then(function successCallback(response) {
                    if (response.status == 200) {
                       lala.users = response.data
                    }
                });
            };
    

    还有春天的一面

    @RequestMapping(value = "server", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
        public ResponseEntity<List<MyObjects> sort( @RequestBody List<MyObjects> query) {
            List<MyObjects> results2 = new ArrayList<>();
    
            for(MyObjects a : query) {
                    System.out.println(a.getFirstName());
            }
    
            return new ResponseEntity<>(results2, HttpStatus.OK);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多