此文已由作者易国强授权网易云社区发布。
欢迎访问网易云社区,了解更多网易技术产品运营经验
或如下的异常信息:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
....
在这里我们可以在主入口类中继承WebMvcConfigurerAdapter类,修改默认视图解析的解析规则,示例如下所示,这里favorPathExtension方法表示是否支持后缀匹配,我们这里直接设置为false即可实现我们的需求,其他不做任何修改,那么我们的所以返回结果会根据自定义的解析策略返回jackson解析的json格式数据。
@SpringBootApplication
public class BingoWebApplication extends WebMvcConfigurerAdapter {
public static void main(String[] args) {
SpringApplication.run(BingoWebApplication.class, args);
}
@Override
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
configurer.favorPathExtension(false);
}
}
上面代码中提到ContentNegotiationConfigurer 这个配置类还可以自定义很多解析的规则,比如ignoreAcceptHeader方式设置是否匹配请求头的信息,defaultContentType方法设置默认匹配类型等等。具体大家可以自己试下。
@Bean
public FreeMarkerViewResolver getFreeMarkerViewResolver(){
FreeMarkerViewResolver resolver = new FreeMarkerViewResolver();
resolver.setPrefix("");
resolver.setSuffix(".ftl");
resolver.setContentType("text/html; charset=UTF-8");
resolver.setRequestContextAttribute("rc");
return resolver;
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐
更多网易技术、产品、运营经验分享请点击。