2010-03-03 4 views
1

Я хочу, чтобы многие мои контроллеры создавали и возвращали ModelMaps и чтобы эти ModelMaps впоследствии отправлялись/обрабатывались JsonView. (Эти контроллеры будут обслуживать запросы AJAX.) Я предполагаю, что мне нужно настроить ViewResolver; Каков наилучший способ сделать это? Есть ли лучшая альтернатива Spring-Json View?Spring MVC 2.5, JsonView и ModelMap

EDIT:

Как подключить вид, когда мой контроллер возвращает ModelMap объекты, а не объекты ModelAndView?

ответ

1
/** 
* Custom handler for displaying vets. 
* Note that this handler returns a plain {@link ModelMap} object instead of 
* a ModelAndView, thus leveraging convention-based model attribute names. 
* It relies on the RequestToViewNameTranslator to determine the logical 
* view name based on the request URL: "/vets.do" -> "vets". 
* @return a ModelMap with the model attributes for the view 
*/ 
@RequestMapping("/vets.do") 
public ModelMap vetsHandler() { 
    return new ModelMap(this.clinic.getVets()); 
} 

Он опирается на RequestToViewNameTranslator для определения имени логического представления.

1

Я не уверен, что это «лучшая» альтернатива spring-json, но с Spring 3.0 вы можете просто комментировать некоторые методы в своем контроллере, и он вернет json или xml на основе заголовка HTTP Accept.

См. this сообщение в блоге для получения дополнительной информации.

+0

Thanks; это мило. Любые предложения, если я хочу придерживаться 2.5.x? – Upperstage

+0

Я не использовал spring-json - но это выглядит разумно, если вы используете 2.5.x. Раньше я использовал Джерси и модуль весны-джерси, но использовал другой набор аннотаций (jax-rs). Таким образом, он не будет очень хорошо интегрироваться с вашими контроллерами. Но это еще одна альтернатива https://jersey.dev.java.net/nonav/documentation/latest/user-guide.html#d4e1280 –

1

В чем проблема с использованием вида spring-json?

Это кажется точно так, как вы хотели бы обрабатывать что-то вроде этого:

  • Ваш контроллер не знает технологии зрения, которая будет использоваться, он просто возвращает VIEWNAME и данных (модель)
  • вы настроить вид распознаватель превратить эту модель в JSON (или HTML или Excel, или все, что вы хотели бы)
+0

Спасибо; ничего плохого в этом, просто спрашивая. Не забудьте добавить пример настройки? – Upperstage

+0

http://spring-json.sourceforge.net/demoapp.html и http://spring-json.sourceforge.net/quickstart.html –

+0

Спасибо @matt b, но эти примеры возвращают объекты ModelAndView. – Upperstage

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