2016-05-06 4 views
0

schreibt Ich muss den Wert von Client-Seite zu Server-Seite erhalten. Ich benutze AngularJS und Struts2 REST. Neuling in AngularJS hier. Mein Controller bekommt nicht den Wert übergeben oder bin ich falsch beim Überholen oder die Verwendung eines ruhigen Controllers?Wie man Daten von AngularJS zu Struts2 mit REST

Hier ist mein Code:

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 
     }); 
} 
}); 

Hier meine Ruhe-Controller:

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; 
} 

} 
+0

Sie sollten Sie es POSTLEITZAHL nützlich sein wird, um Ihre Frage –

+0

Mögliche Duplikat zu erkennen [Wie die Dienste für den Zugriff auf von RESTful API in meiner AngularJS Seite?] (Http: //stackoverflow.com/questions/16394089/how-to-access-the-services-from-restful-api-in-my-angularjs-page) – nipuna777

+0

kann das auch struts2 lesen? TIA. –

Antwort

0

Da Winkel Dienst JSON senden, können Sie senden ein JSON-Objekt mit der Eigenschaft data. Das JSON-Objekt wird für Ihre Modellklasseneigenschaften deserialisiert, da Sie andernfalls die Eigenschaften ModelDriven oder die Aktionsklasse verwenden.

Das Struts2 REST-Plugin wurde entwickelt, um JSON-Inhalte aus der Anfrage zu verarbeiten. Es ist möglich, , die rest genannt wird, in der Lage sein, JSON-Handler für die Anfrage zu finden. Der JSON-Handler wird aus dem Header oder der Erweiterung Content-Type der Datei in der URL erraten. Sie können beide Arten verwenden, aber die zweite ist einfacher.

Hinweis: dass URLs ohne Dateierweiterung das Struts2 REST-Plug-In standardmäßig mit XHTML-Inhalt umgehen. So können Sie ändern Sie den Code

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

Verwandte Themen