使用 Angular 的 $http 通过 GET 请求将对象数组发送到 Java Spring
Send array of objects via GET request with Angular's $http to Java Spring
我有一个 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);
}
您可以转换字符串并使用定界符,然后在服务器端对其进行解析。您还可以使用 HttpPost 而不是 HttpGet 请求,这样您就可以发送 JSON 字符串并且更容易解析。
根据 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
}
});
};
而Spring一侧
@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);
}
我有一个 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);
}
您可以转换字符串并使用定界符,然后在服务器端对其进行解析。您还可以使用 HttpPost 而不是 HttpGet 请求,这样您就可以发送 JSON 字符串并且更容易解析。
根据 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
}
});
};
而Spring一侧
@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);
}