Конфигурация Spring MVC JSON - PullRequest
1 голос
/ 03 июля 2011

Я бы знал, как работает конфигурация служб отдыха Spring MVC, которая возвращает JSON.

Я настроил applicationContenxt.xml следующим образом:

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
        </list>
    </property>
</bean>
<bean id="contentNegotiatingViewResolver" class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
    <property name="mediaTypes">
        <map>
            <entry key="json" value="application/json"/>
        </map>
    </property>
    <property name="defaultViews">
        <list>
            <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
        </list>
    </property>
</bean>
<bean class="com.MyController"></bean>

А это код моего контроллера:

@Controller(value="MyController")
public class MyController {
    @RequestMapping(value="/getValue", method=RequestMethod.GET)
    public ModelAndView getValue() {
        Map model = new HashMap();
        model.put("asasa", "bbbbb");
        model.put("cccc", "ddddd");
        return new ModelAndView("jsonView",model);
    }
}

Я что-то упускаю из-за конфигурации xml или кода Java? У меня всегда ошибка 404 при попытке вызвать этот ресурс: http://localhost:8080/fss/MyController/getValue

Ответы [ 2 ]

2 голосов
/ 20 августа 2013

И не забудьте добавить конвертер Джексона в контекстный файл Spring.

<mvc:annotation-driven>
  <mvc:message-converters>
    <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
  </mvc:message-converters>
</mvc:annotation-driven>

Кстати - если ваш метод принимает JSON, используйте аннотацию @RequestBody с входящим типом данных:

@RequestMapping
public @ResponseBody OutgoingClass getJsonByJson(@RequestBody IncomingClass data) {...}

Вы можете найти хорошие примеры JSON и Spring MVC и многое другое https://sites.google.com/site/upida4j/example

2 голосов
/ 04 июля 2011

Просто сделайте:

@Controller
public class HelloController {

  @RequestMapping(value="/hello", method=RequestMethod.GET)
  public @ResponseBody String hello(@RequestParam String name) {
    return "Hi " + name;
  }
}

Измените тип возвращаемого значения на объект и включите Джексона в путь к классу для ответа объекта.

Запрос должен иметь заголовок application / json дляконтроллер для возврата JSON.

Check http://blog.springsource.com/2010/01/25/ajax-simplifications-in-spring-3-0/

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