2011-07-03 13 views
1

JSONを返すSpring MVCの休憩サービスに関する設定がどのように機能するのか分かります。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エラーしている:オブジェクトに

@Controller 
public class HelloController { 

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

変更戻り値の型を、オブジェクト応答のためのクラスパスにジャクソンが含ま:http://localhost:8080/fss/MyController/getValue

答えて

2

をチェックアウトして、Springコンテキストファイルにジャクソンコンバータを追加することを忘れないでください。ところで

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

- あなたの方法は、JSONを受け入れた場合、着信データ型と@RequestBodyアノテーションを使用する:あなたは素敵なJSONと春のMVCの例と、よりhttps://sites.google.com/site/upida4j/example

を見つけることができます

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

関連する問題