我需要从客户端获取到服务器端的值。我正在使用 AngularJS 和 Struts2 REST。
我的控制器没有获取传递的值,还是我传递或使用 RESTful 控制器时出错了?
这是我的代码:
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
});
}
});
这是我的 REST 控制器:
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;
}
}
由于角度服务http
发送 JSON,您可以使用发送 JSON 对象data
财产。 JSON 对象将被反序列化为您的模型类属性,因为您正在使用ModelDriven
or Action
否则类属性。
Struts2 REST 插件用于处理请求中的 JSON 内容。有可能是由于ContentTypeInterceptor
, 这就是所谓的rest
,能够找到请求的 JSON 处理程序。 JSON 处理程序是从以下内容猜测的Content-Type
标头或.json
URL 中文件的扩展名。您可以使用任何一种方法,但第二种更容易。
Note:
Struts2 REST 插件默认处理的不带文件扩展名的 URLxhtml
内容。所以你可以修改你的代码
$http({
method: "POST",
url: "api/additionalcategory.json",
data: {}
}).success(function(data, status, header, config){
//success
}).error(function(data, status, header, config){
//error
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)