Spring POST没有返回有效数字

时间:2013-10-26 15:35:40

标签: java javascript spring angularjs

我对春天来说非常新,但我设法从我的javascript中提出了这个代码

$scope.addMe = function(){
        var params = {
            date :111111,
            username: 'thisGuy',
            notetext: 'this is a new note that was just added'
        };
        $http.post(afHttp.baseUrl + "/blah/" + $scope.dog.id, {params: params})
            .success(function(data) {
            });
    }

在elclipe我有

@POST
@Path("/{id}")
public void getAddMssg(@PathParam("id") int id, @FormParam("date") int date, @FormParam("username") String username, @FormParam("notetext") String notetext) {
    System.out.println("date:      "+date);
    System.out.println("username:   "+ username);
    System.out.println("notetext:   "+ notetext);
    System.out.println("id:   "+ id);

}

当我在eclipse中查看我的控制台日志时,它说

date:   0
username:   null
notetext:   null
id:   123124

我做错了什么?我一直在研究这个问题一段时间没有用。有人可以帮忙吗?

哦对不起,我忘了添加我正在使用angularjs。

2 个答案:

答案 0 :(得分:2)

将params传递给那个论点,而不是{params:params}。 另外,添加Content-Type标头作为第三个参数:

$http.post(afHttp.baseUrl + "/blah/" + $scope.dog.id, params, {
    headers: { 'Content-Type': 'application/x-www-form-urlencoded'}})

在服务器端,使用@Consumes(MediaType.APPLICATION_FORM_URLENCODED)继续@POST:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)

MediaType的完全限定名称是javax.ws.rs.core.MediaType,以防您需要导入它。

答案 1 :(得分:1)

什么是$ http? 如果是jQuery,post方法需要'data'而不是“params”。 http://api.jquery.com/jQuery.post/