Класс элемента синтаксического анализа Spring MVC 3.0 в JSON - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть класс с именем Person, и это выглядит так.

public class Person{
public Person(){}

private Long id;
private String firstName;
private String lastName;
private Supervisor supervisor;

//setters and getters
}

public class Supervisor{
public Supervisor(){}
private Long id;
private String firstName;
private String lastName;

//setters and getters
}

Теперь у меня есть HTML-форма, в которой есть входные данные для сотрудников и руководителей (имя, фамилия и т. Д.) На стороне сервера у меня Spring MVC контроллер, и я делаю следующее:

 @RequestMapping(value="/getperson.do",method = RequestMethod.POST)
         @ResponseBody
          public String getPersonByAjax(@RequestBody Person person){ 

          }

Будет ли мой суперпользователь проанализирован как элемент внутри класса Person?

Как должна выглядеть моя строка JSON?

Могу ли я добиться этого с помощью JQuery или мне нужно создать строку JSON вручную?

Ответы [ 2 ]

1 голос
/ 09 ноября 2010

Ваше сообщение JSON должно выглядеть следующим образом:

{
    "id": ...,
    "firstName": ...,
    "lastName": ...,
    "supervisor": {
        "id": ...,
        "firstName": ...,
        "lastName": ...    
    }
}

jQuery не может автоматически сериализовать форму в это представление, поэтому вам нужно немного обработать вручную.

1 голос
/ 09 ноября 2010

Я думаю, вы, возможно, захотите, чтобы ваш супервизор расширил Person?

Или даже измените Person на интерфейс и попросите, чтобы Supervisor реализовал этот интерфейс и добавил новый класс Employee для представления Person с супервизором.*

Я бы разрешил эту структуру, чтобы ваш getPersonByAjax мог принимать все типы людей.

Тогда вы можете начать беспокоиться о своем JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...