繁体   English   中英

AngularJS Spring控制器表单提交

[英]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服务提供一个对象,该对象最多具有两个字符串类型的属性: offerTypeofferTitle 我认为您当前拥有的属性比预期的要多,或者您没有正确的类型,因此错误的请求异常。

鉴于这两个属性是一个字符串,您可以在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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM