如何使用角度js将模型属性POJO对象发布到弹簧控制器

时间:2015-06-09 06:56:00

标签: java javascript angularjs spring spring-mvc

我是角度JS的新手,春天mvc。

基本上我试图通过角度JS作为模型属性POJO对象发布到我的门户上的表单数据到弹簧控制器。

怎么回事?您可以在下面找到我需要的FORM样本数据和角度JS函数add(),它可以在表单上使用ng-submit。

@RequestMapping(value="sample", method = RequestMethod.POST)
public String processSampleForm(@ModelAttribute("checkInRequest") CheckInRequest checkInRequest, 
@ModelAttribute("sampleRequest") SampleRequestMO sampleRequest,
HttpServletRequest request, HttpServletResponse response, ModelMap model)
throws Exception

< ------ Angular JS ---->

$scope.add = function(){
    var request = $http({
    method: "post",
            url: "sample.htm",
            transformRequest: transformRequestAsFormPost,
            sampleRequest: {
                'phone': 9999999999,
                'name': "Kim"
            },
            CheckInRequest: {
                'merchantCode': 11,
                'outletCode': 100

            }
        });

任何帮助都将受到高度赞赏。

TIA

1 个答案:

答案 0 :(得分:0)

当您通过$ http发送数据时,您发送的是jsons,而不是模型属性。模型属性(如Spring所见)是提交的表单。您应该能够在请求参数中找到CheckInRequest

@RequestMapping(value="sample", method = RequestMethod.POST)
public String processSampleForm(@RequestParam("CheckInRequest") String checkInRequest, @RequestParam("sampleRequest") String sampleRequest, HttpServletRequest request, HttpServletResponse response, ModelMap model)

请注意,如果没有进一步配置,params将作为字符串(表示json)接收,您必须手动反序列化它们。您可以进一步配置ObjectMapper或绑定器,以便Spring对它们进行反序列化。