[英]JakartaVelocity 1.7 form submission with Spring MVC, getting null values in controller
[英]Angularjs Spring controller form submission
Java-Spring Controller-AngularJS表单提交
问题是"@RequestBody OfferForm data"
在我提交表单时出现错误“ 404错误的请求”,但是当我用String对象替换OfferForm bean时,它可以正常工作并以json格式显示表单数据。
任何帮助表示赞赏。
以下是我的angularjs函数代码
$scope.submitOffer = function() {
alert('submitOffer')
$http({method: 'POST', url: '/offer/submitOffer', data: $scope.formData}).
success(function(data, status, headers, config) {
$scope.successMsg = data;
}).
error(function(data, status, headers, config) {
if(status == 400) {
$scope.errMessages = data;
} else {
alert('Unexpected server error.');
}
});
};
以下是我的控制器代码
@RequestMapping(value="offer")
public class OfferController{
@RequestMapping(value = "/submitOffer", method = RequestMethod.POST)
@ResponseBody public ResponseEntity<?> postForm(@RequestBody OfferForm data) {
System.out.println(data);
return new ResponseEntity<String>("Offer Created", HttpStatus.OK);
}
}
以下是我的java bean
public class OfferForm {
private String offerType;
private String offerTitle;
public String getOfferType() {
return offerType;
}
public void setOfferType(String offerType) {
this.offerType = offerType;
}
public String getOfferTitle() {
return offerTitle;
}
public void setOfferTitle(String offerTitle) {
this.offerTitle = offerTitle;
}
}
您的$scope.formData
对象具有比Web服务预期更多的属性。
您应该向您的Web服务提供一个对象,该对象最多具有两个字符串类型的属性: offerType
和offerTitle
。 我认为您当前拥有的属性比预期的要多,或者您没有正确的类型,因此错误的请求异常。
鉴于这两个属性是一个字符串,您可以在JavaScript中执行类似的操作:
$scope.submitOffer = function () {
$http({
method: 'POST',
url: '/offer/submitOffer',
data: {
offerType: $scope.formData.offerType,
offerTitle: $scope.formData.offerTitle
}
}).
success(function (data, status, headers, config) {
$scope.successMsg = data;
}).
error(function (data, status, headers, config) {
if (status == 400) {
$scope.errMessages = data;
} else {
alert('Unexpected server error.');
}
});
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.