SSM框架返回JSON数据,报405、406错误的解决方法

主要是ssm整合配置文件,以及Jar的问题
1.前提条件

ssm相关整合文件没问题,包扫描的路径都没问题,注解驱动也启动了
SpringMvc 管理Controller的包
Spring 管理非Controller的包(个人习惯,也可以Mybatis管理Dao包)

2.在SpringMvc配置文件中加入


     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="mappingJacksonHttpMessageConverter"/>
            list>
        property>
    bean>   

    
    <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>  
            <bean class="org.springframework.http.MediaType">  
             <constructor-arg index="0" value="text"/>  
             <constructor-arg index="1" value="plain"/>  
             <constructor-arg index="2" value="UTF-8"/>  
            bean>  
            <bean class="org.springframework.http.MediaType">  
             <constructor-arg index="0" value="*"/>  
             <constructor-arg index="1" value="*"/>  
             <constructor-arg index="2" value="UTF-8"/>  
            bean>  
            <bean class="org.springframework.http.MediaType">  
             <constructor-arg index="0" value="text"/>  
             <constructor-arg index="1" value="*"/>  
             <constructor-arg index="2" value="UTF-8"/>  
            bean>  
             <bean class="org.springframework.http.MediaType">  
             <constructor-arg index="0" value="application"/>  
             <constructor-arg index="1" value="json"/>  
             <constructor-arg index="2" value="UTF-8"/>  
            bean>  
          list>  
        property>
    bean>   

3.增加相应的MappingJackson2HttpMessageConverter的三个jackson依赖包
注意:我的Spring是 4.X版本的

    
    <dependency>  
        <groupId>com.fasterxml.jackson.coregroupId>  
        <artifactId>jackson-coreartifactId>  
        <version>2.5.2version>  
    dependency>  

    <dependency>  
        <groupId>com.fasterxml.jackson.coregroupId>  
        <artifactId>jackson-databindartifactId>  
        <version>2.5.2version>  
    dependency>  

    <dependency>
        <groupId>com.fasterxml.jackson.coregroupId>
        <artifactId>jackson-annotationsartifactId>
        <version>2.5.2version>
    dependency>

4.xxxController.java

请看清楚下面的的注解是否都有写了
@Controller
@RequestMapping("/xxx")
@RequestMapping(value = "/xxx", method = RequestMethod.GET)
@ResponseBody

例子:
@Controller
@RequestMapping("/xxx")
public class CklController {
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/list", method = RequestMethod.GET)
    @ResponseBody
    private Map> list() {
        Map> map = new HashMap>();
        map = this.userService.getAllUser();
        return map;
    }

}

你可能感兴趣的:(springmvc)