Как разместить данные из AngularJS в Struts2 с помощью REST

Мне нужно получить значение со стороны клиента на сторону сервера. Я использую AngularJS и Struts2 REST. Новичок в AngularJS здесь. Мой контроллер не получает передаваемое значение или я ошибаюсь в передаче или использовании RESTful controller?

Вот мой код:

angularcontroller.js

app.controller('saveAddCatCtrl', function($scope, $http){
    $scope.save = function(newAddCat){
        $http({
            method: "POST",
            url: "api/additionalcategory",
            data: $scope.additionalCategory.addCatName
        }).success(function(data, status, header, config){
            //success
        }).error(function(data, status, header, config){
            //error
        });
}
});

Вот мой контроллер отдыха:

public class AdditionalcategoryController extends ActionSupport implements ModelDriven<Object>{

private AdditionalCategoryRepository additionalCategoryRepository =
        (AdditionalCategoryRepository)ServletActionContext.getServletContext()
        .getAttribute("additionalCategoryRepository");

private List<AdditionalCategory>            additionalCategories;
public AdditionalCategory                   additionalCategory = new AdditionalCategory();
private int                                 id;

public HttpHeaders index(){
    setAdditionalCategories(additionalCategoryRepository.findAllAdditionalCategory());
    System.out.println("GET api/additionalCategory");
    return new DefaultHttpHeaders("index").disableCaching();
}

public HttpHeaders create(){
    additionalCategoryRepository.createAdditionalCategory(additionalCategory);
    return new DefaultHttpHeaders("create").disableCaching();
}

public void setAdditionalCategories(List<AdditionalCategory> additionalCategories){
    this.additionalCategories = additionalCategories;
}

@Override
public Object getModel() {
    if (additionalCategories == null){
        return additionalCategory;
    }else{
        return additionalCategories;
    }
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public List<AdditionalCategory> getAdditionalCategories() {
    return additionalCategories;
}

public AdditionalCategory getAdditionalCategory() {
    return additionalCategory;
}

public void setAdditionalCategory(AdditionalCategory additionalCategory) {
    this.additionalCategory = additionalCategory;
}

}

1 ответ

  1. Поскольку angular service отправляет JSON,можно отправить объект JSON с помощью dataсвойства. Объект JSON десериализуется в свойства класса модели, так как в противном случае используются ModelDrivenсвойства класса или класса действия.

    Struts2 REST плагин предназначен для обработки содержимого JSON из запроса. Это возможно из-за ContentTypeInterceptorтого , что вызывается restвозможность найти обработчик JSON для запроса. Обработчик JSON угадывается из Content-Typeзаголовка или расширения файла в URL. Вы можете использовать любой из способов, но второй проще.

    Примечание: что URL-адреса без расширения файла struts2 REST плагин по умолчанию для обработки содержимого xhtml. Таким образом, вы можете изменить свой код

    $http({
        method: "POST",
        url: "api/additionalcategory.json",
        data: {}
    }).success(function(data, status, header, config){
        //success
    }).error(function(data, status, header, config){
        //error
    });