springmvc常见问题收集

1.上传文件后台接收不到,没有在spring-mvc.xml配置multipartResolver

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 设定默认编码 -->
        <property name="defaultEncoding" value="utf-8"></property>
        <!-- 设定文件上传的最大值20MB,20*1024*1024 -->
        <property name="maxUploadSize" value="20971520"></property>
</bean>

2.后台直接return字符串,前台页面接收到的中文数据乱码,没有在spring-mvc.xml配置响应纯文本时的编码格式

<mvc:annotation-driven>
        <!-- 设置直接响应纯文本时的编码格式 -->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg index="0" value="utf-8"></constructor-arg>
            </bean>
        </mvc:message-converters>
</mvc:annotation-driven>
@RequestMapping(value = "/category",produces="application/json;charset=utf-8")

3.静态资源访问不到,没有在spring-mvc.xml配置资源映射

<mvc:resources mapping="/css/**" location="/css/"/>
<mvc:resources mapping="/js/**" location="/js/"/>
<mvc:resources mapping="/image/**" location="/images/"/>
<mvc:default-servlet-handler />  <!--这句要加上,要不然可能会访问不到静态资源,具体作用自行百度-->

 4.后台接口成功响应,前台接收不到数据,需要类增加注解@RestController或者接口增加注解@Controller+@ResponseBody

@RestController
@RequestMapping(value = "/category",produces="application/json;charset=utf-8")
public class CategoryController{

}
@Controller
@RequestMapping(value = "/category",produces="application/json;charset=utf-8")
public class CategoryController{
    @PostMapping("/add")
    @ResponseBody
    public Response add(){
    
    }
}    

5.注解@RestController和注解@Controller的区别

@Controller注解,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
原文地址:https://www.cnblogs.com/i-tao/p/13262069.html