【问题标题】:Spring POST not returning valid numbersSpring POST 未返回有效数字
【发布时间】:2013-11-05 16:09:59
【问题描述】:

我对 spring 非常陌生,但我设法从我的 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) {
            });
    }

在 elclip 我有

@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。

【问题讨论】:

    标签: java javascript spring angularjs


    【解决方案1】:

    将参数传递给该参数,而不是 {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,以防您需要导入它。

    【讨论】:

    • 是的,我这么说,看我的评论,用户说结果为零
    • 我当然不是专家,但我想弄清楚这一点。请看看我的最新更新是否有效。
    • 好的,谢谢,所以我添加了它并在添加时收到错误“(不支持的媒体类型)”
    • 根据我在这里看到的示例进行了更新:stackoverflow.com/questions/4234084/…
    【解决方案2】:

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

    【讨论】:

    • 我正在使用 angularjs,对此感到抱歉。
    • 好的,这是一个错误:将 {params:params} 替换为仅参数:link post(url, data, config)
    • 我不太明白,你能举个例子说明你的意思吗?
    • 抱歉,我看错东西了,配置是什么?
    • $http.post(afHttp.baseUrl + "/blah/" + $scope.dog.id, params) .success(function(data) { });在 AngularjS 发布方法中,获取第二个参数数据对象,您发送名称为 param 的其他对象。我认为这样就可以了。第三个参数是可选的。你不需要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2016-06-17
    • 1970-01-01
    • 2014-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多