java - 使用 AngularJS 传递参数时 Resteasy @FormParam null

标签 java javascript angularjs resteasy

我正在尝试在前端使用 AngularJS,并将 Resteasy 用作 Rest API。 我的问题是,在使用 AngularsJS 发送参数时,我的@FormParam 始终为 null。

我的 JS 是这样的:

$scope.addPerson = function(newFirstName, newLastName) {
            $http({
                method: 'POST',
                url: "rest/persons/savePerson",
                data: {firstName: 'newFirstName', lastName: 'newLastName'},
                headers: {'Content-Type': 'application/json'}
            })
            .success(function(data) {
                alert("DATA  : " + data);
            }).error(function(data, status, headers, config) {
                alert("Could not save new person");
            });
        };

这是我的代码服务器端:

@POST
@Path("/savePerson")
@Produces("application/json")
@Secured({ "ROLE_USER" })
public PersonBean savePerson(@FormParam("firstName") String firstName,
        @FormParam("lastName") String lastName) {
    if (firstName== null || lastName== null) {
        return null;
    }
    PersonBean person = personDao.savePerson(firstName,
            lastName);
    return person ;
}

感谢任何帮助。

最佳答案

您将字段作为 JSON 而不是表单编码数据发布。

headers: {'Content-Type': 'application/json'}

但是你不能只改变这个标题。这些值将需要进行形式编码。请参阅此页面,了解如何从 Angular 发布表单数据。

http://www.bennadel.com/blog/2615-posting-form-data-with-http-in-angularjs.htm

不过,您可能会发现坚持使用 JSON 并让您的框架为您将这些字段映射到一个 Bean 会更好。

我没有使用过 Resteasy,但我认为它应该像...一样简单

@POST
@Path("/savePerson")
@Consumes("application/json")
@Produces("application/json")
@Secured({ "ROLE_USER" })
public PersonBean savePerson(SavePersonBean savePersonBean) {
    PersonBean person = personDao.savePerson(savePersonBean.getFirstName(),
            savePersonBean.getLastName());
    return person;
}

关于java - 使用 AngularJS 传递参数时 Resteasy @FormParam null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26877246/

相关文章:

java - 线程执行的频率是多少?我的观察者模式出错了?

java - Jasper Reports 和巨大的 XML 作为数据源

javascript - 无法将 JSON 对象插入数组

javascript - 尝试连接跨域托管信号服务时,signalR 连接失败

javascript - 如何在 JavaScript 函数中使用 Angular 变量作为参数

java - 使用 Apache Felix iPOJO 事件管理处理程序

java - 如何在 build.xml 中设置不同的路径

javascript - 如何在 php 代码中的 javascript 代码中使用 php 变量?

javascript - 不要在 IE 中运行 javascript 函数

javascript - 为什么 "@grant randominvalidsetting"会激活沙箱?