Я настроил простой веб-проект spring3 и у меня есть метод контроллера, подобный этому:
@RequestMapping(method = RequestMethod.GET, value = "/book/{id}", headers = "Accept=application/json,application/xml")
public @ResponseBody
Book getBook(@PathVariable final String id)
{
logger.warn("id=" + id);
return new Book("12345", new Date(), "Sven Haiges");
}
Возвращает новый объект книги, который будет преобразован в JSON или XML из-за преобразователей, которые я установил в конфигурации весны:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jsonConverter" />
<ref bean="marshallingConverter" />
</list>
</property>
</bean>
Генерация JSON (и XML) все работает, но я хотел бы иметь возможность определить несколько представлений для данных. Например, я хотел бы указать подробное представление с меньшим количеством свойств в предоставляемом JSON / XML и подробное представление с полным набором свойств.
Используя ObjectMapper Джексона, это возможно так:
objectMapper.writeValueUsingView(out, beanInstance, ViewsPublic.class);
Есть ли способ настроить Spring на использование определенного VIEW (подробное описание)? Единственный способ добиться этого прямо сейчас - использовать разные DTO, возвращаемые из методов моего контроллера.
Thanx!