2016-07-23 138 views
1

我是angularjs的新手。我试图从angularjs发布一个请求到弹簧控制器。请求对象以角度正确记录,但在控制器中为空。从angularjs到弹簧mvc控制器的发布请求

我已经通过了类似的问题,但他们并没有制定出对我来说:

getting null using angular post

angularjs-spring-mvc-json-post-request

spring-angularjs-receiving-null-data-on-server

Controller.js:

$scope.addExpense = function (expense) { 
     console.log("Received"+expense.amount+expense.description); 

     var expenseDetail = { 
      description:expense.description, 
      amount:expense.amount, 
      created:'', 
      updated:'', 
     }; 

     console.log("expense detail : "+JSON.stringify(expenseDetail)); 

     $http({ 
      method : 'POST', 
      dataType: 'json', 
      url  : 'addExpense1', 
      data : JSON.stringify(expenseDetail), 
      headers: { 
       "Content-Type": "application/json" 
      } 
     }).success(function (response) { 
      console.log(response.data); 
     }).error(function(response){ 
      console.log("Error : "+response.data); 
     }); 
    }; 

控制器的方法:

@RequestMapping(value = "addExpense1", method = RequestMethod.POST) 
@ResponseBody 
public List<ExpenseDetail> addExpense1(@RequestBody ExpenseDetailDTO expenseDetailDTO) { 
    LOG.info("Request to add description : " + expenseDetailDTO.getDescription()); 
    if(expenseDetailDTO==null || expenseDetailDTO.getDescription()==null || expenseDetailDTO.getAmount()==null) 
     return null; 
    expenseService.addExpense(expenseDetailDTO); 

    List<ExpenseDetail> expenseDetails = expenseService.getAllForToday(); 
    LOG.info("Expense Details fetched : " + expenseDetails.size()); 
    return expenseDetails; 
} 

在控制器以下日志打印:

Request to add description : null 

,我没有得到任何地方的错误。 请帮助我。

+0

如何u解决了这个..? – Hema

回答

0

我以前在使用spring webmvc时遇到类似的问题。

https://github.com/sombriks/rango-vote-spring/blob/master/src/main/java/rango/vote/RangoVoteController.java

什么在我的案件告破是除了杰克逊,数据绑定依赖和正确的配置:

https://github.com/sombriks/rango-vote-spring/blob/master/build.gradle#L54

https://github.com/sombriks/rango-vote-spring/blob/master/src/main/webapp/WEB-INF/applicationContext.xml#L29

如果可能的话,我更喜欢春天+球衣在春天webmvc,因为您可以使用jaxb来正确映射您的数据对象:

http://pastebin.com/TVsrJJm7

http://pastebin.com/jE7z1u3k

http://pastebin.com/39QDBgQD

希望它可以帮助