2015-03-11 1 views
0

Когда пользователь вызывает MANAGE_EMPLOYEE url, тогда я возвращаю employeeView (jsp), где мне нужно отобразить список сотрудников, чтобы пользователь мог редактировать и сохранять его снова. Я знаю, что могу указать @JsonSerialize(using=EmployeeDTOSerializer.class) на мой DTO с запросом http до Controller и аннотировать @ResponseBody, но здесь я добавляю его в атрибут модели, поэтому хочу знать, как сериализовать список объектов, прежде чем отправить его на JSP.Как вы определяете собственный сериализатор для списка объектов, прежде чем добавлять его в атрибут modelAttribute весной 4?

+0

Когда вы говорите о сериализации, вы имеете в виду JSON? – jny

+0

Да, можем ли мы преобразовать список объектов в формат json и добавить его в ModelAttribute и отправить его в JSP? – user007

ответ

0

Вам нужно будет сделать это самостоятельно, используя одну из библиотек. Например, вы могли бы использовать ObjectMapper из Jackson:

// In configuration: 
    ObjectMapper mapper=new ObjectMapper(); 

и

//In Controller 
    @ModelAttribute("employeeForm") 
    public EmployeeForm createEmployeeForm(Model model, HttpSession session){ 
      EmployeeForm eform = new EmployeeForm(); 
      List<EmployeeDTO> eList = employeeService.getEmployeeList(employeeId)//employeeId comes from session 
      eform.setEmployeeDTO(eList); 
      model.addAttribute("empoyeeList", mapper.writeValueAsString(eList)); 
      return eform; 
} 

Это (возможно, с некоторыми изменениями) запишет JSon строку модели. Однако я бы не рекомендовал этого. Я предлагаю добавить AJAX-вызов к вашему jsp, который будет получать список сотрудников. Затем вам нужно будет добавить метод к контроллеру, который вернет список и аннотирует его с помощью @ResponseBody.

Смежные вопросы