因此,使用GET方法通常,当我们获取一些数据,如果我们希望将一些数据发送到服务器(例如,一个ID为将要删除的人),我们使用POST方法或DELETE方法,在我的例子,我将使用POST方法简化. Angular和java通过RESTFUL服务(JAX-RS)进行通信,你无法在角度js中调用java函数或反之亦然.我将展示获取数据和发送数据的简单示例(获取所有人,删除具有给定ID的人).
以下是您可以开始学习的示例:
Java人员控制器
@Controller
@RequestMapping(value = "/person")
public class PersonController{
private final PersonService personService;
@Autowired
public PersonController(final PersonService personService) {
this.personService= personService;
}
@RequestMapping(value = "/", method = { RequestMethod.GET })
@ResponseBody
public List getPersons() {
return personService.getPersons();
}
@RequestMapping(value = "/delete/{personId}", method = { RequestMethod.POST})
@ResponseBody
public HttpStatus deletePerson(@PathVariable final long personId) {
return personService.deletePerson(personId);
}
}
Java人员服务
public class PersonService{
private final PersonRepository personRepository;
@Autowired
public PersonService(final PersonRepository personRepository) {
this.personRepository= personRepository;
}
public List getPersons() {
return personRepository.findAll();;
}
public HttpStatus deletePerson(final long id) {
if (id > 0) {
personRepository.delete(id);
return HttpStatus.OK;
} else {
return HttpStatus.INTERNAL_SERVER_ERROR;
}
}
}
Java Person Repository
public interface PersonRepository{
public void delete(int personId);
public List findAll();
}
Angular app.js
(function() {
var app = angular.module('personApp',[]);
app.controller('personCtrl',function($scope,$http){
$scope.getPersons = function(){
$http.get('person/').success(function(response){
$scope.allPersons = response.data;
}).error(function(){
//handle error
})
};
$scope.deletePerson = function(personId){
$http.delete('person/'+personId).success(function(response){
$scope.deleteResponseStatus = response.status;
}).error(function(){
//handle error
})
}
})
})();
HTML
希望它会有所帮助,没有经过测试,但一般来说就是对带有人员ID的控制器的flow..send请求,在数据库中找到并删除它