如今在javaee领域,struts的地位已经被Spring mvc给替代了。 介绍一下Spring MVC的一些进阶技能。
####SpringMvc 跨域问题解决。 1、@CrossOrigin注解
@CrossOrigin(origins = "*", maxAge = 3600)
这个注解即可以在方法上用,也可以在类上用(相当于类中的所有方法都使用)。
####SpringMVC @RequestBody接收Json对象字符串
可以参考这篇文章SpringMVC @RequestBody接收Json对象字符串 用这种方法对于前后端分离的情况特别方便。这样直接传json字符串给后台,后台自己解析就ok了。
Spring boot中配置
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/api/**")
.allowedOrigins("http://domain2.com")
.allowedMethods("PUT", "DELETE")
.allowedHeaders("header1", "header2", "header3")
.exposedHeaders("header1", "header2")
.allowCredentials(false).maxAge(3600);
}
}
不限制任何请求(方便复制粘贴)
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "TRACE");
}
}
XML中配置
<mvc:cors>
<mvc:mapping path="/api/**"
allowed-origins="http://domain1.com, http://domain2.com"
allowed-methods="GET, PUT"
allowed-headers="header1, header2, header3"
exposed-headers="header1, header2" allow-credentials="false"
max-age="123" />
<mvc:mapping path="/resources/**"
allowed-origins="http://domain1.com" />
</mvc:cors>
####SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法
这篇文章很有参考价值 SpringMVC中出现" 400 Bad Request "错误(用@ResponseBody处理ajax传过来的json数据转成bean)的解决方法