使用Spring MVC的REST Web服务在发布JSON时返回null

时间:2013-10-11 10:15:51

标签: java json spring spring-mvc curl

使用接受JSON请求主体的Spring MVC开发REST Web服务。 并进一步处理收到的消息。 我使用以下: Eclipse,Tomcat,Spring 3.0.1,Jackson lib,用于测试Web服务的Curl


    `curl -i -H "Content-Type: application/json" -H "Accept: application/json" -X POST -d '{"fname":"my_firstname" , "lname":"my_lastname"}' http://localhost:8080/SpringMVC/restful`

返回

"Saved person: null null"

我的控制器类



        import com.samples.spring.Person;

    @Controller
    public class RestController {

    @RequestMapping(value="{person}", method = RequestMethod.POST)
    @ResponseBody
        public String savePerson(Person person) {
             // save person in database
            return "Saved person: " + person.getFname() +" "+ person.getLname();
        }

我的班级




       package com.samples.spring;

    public class Person {

        public String fname;
        public String lname;

        public String getFname() {
            return fname;
        }
        public void setFname(String fname) {
            this.fname = fname;
        }
        public String getLname() {
            return lname;
        }
        public void setLname(String lname) {
            this.lname = lname;
        }
    }

2 个答案:

答案 0 :(得分:5)

尝试添加@RequestBody

@RequestMapping(value="{person}", method = RequestMethod.POST)
@ResponseBody
    public String savePerson(@RequestBody Person person) {
         // save person in database
        return "Saved person: " + person.getFname() +" "+ person.getLname();
    }

答案 1 :(得分:0)

尝试添加一个构造函数您的Person类:

public Person(String fname, String lname) {
    this.fname = fname;
    this.lname = lname;
}