Created
December 20, 2018 03:01
-
-
Save codethereforam/2dda60991d73adf3c3cd05870c1202d8 to your computer and use it in GitHub Desktop.
配置多视图解析,包括thymeleaf和Json两种视图
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 配置多视图解析,包括thymeleaf和Json两种视图 | |
* <ul> | |
* <li>通过url查看thymeleaf视图</li> | |
* <li>通过url+'.json'查看Json视图</li> | |
* </ul> | |
* | |
* @author yanganyu | |
* @date 2018/10/15 14:16 | |
*/ | |
@Configuration | |
@EnableWebMvc | |
public class WebMvcConfig implements WebMvcConfigurer { | |
@Override | |
public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { | |
configurer.ignoreAcceptHeader(true).defaultContentType( | |
MediaType.TEXT_HTML); | |
} | |
/** | |
* 映射静态资源路径 | |
* | |
* @param registry registry | |
* @author yanganyu | |
* @date 2018/10/15 14:30 | |
*/ | |
@Override | |
public void addResourceHandlers(ResourceHandlerRegistry registry) { | |
//相当于 <mvc:resources mapping="/**" location="/static/" /> 也可设置多个路径 | |
registry.addResourceHandler("/**") | |
.addResourceLocations("classpath:/static/"); | |
} | |
/** | |
* Configure ContentNegotiatingViewResolver | |
* | |
* @param manager manager | |
* @return org.springframework.web.servlet.ViewResolver | |
* @author yanganyu | |
* @date 2018/10/15 14:31 | |
*/ | |
@Bean | |
public ViewResolver contentNegotiatingViewResolver(ContentNegotiationManager manager) { | |
ContentNegotiatingViewResolver resolver = new ContentNegotiatingViewResolver(); | |
resolver.setContentNegotiationManager(manager); | |
// 定义所有的视图解析器 | |
List<ViewResolver> resolvers = new ArrayList<>(); | |
resolvers.add(jsonViewResolver()); | |
resolvers.add(thymeleafViewResolver()); | |
resolver.setViewResolvers(resolvers); | |
return resolver; | |
} | |
/** | |
* Configure View resolver to provide JSON output using JACKSON library to | |
* convert object in JSON format. | |
* | |
* @return org.springframework.web.servlet.ViewResolver | |
* @author yanganyu | |
* @date 2018/10/15 14:33 | |
*/ | |
@Bean | |
public ViewResolver jsonViewResolver() { | |
return (viewName, locale) -> new MappingFastjson2JsonView(); | |
} | |
/** | |
* 配置Thymeleaf视图解析器 | |
* | |
* @return org.thymeleaf.spring5.view.ThymeleafViewResolver | |
* @author yanganyu | |
* @date 2018/10/15 14:33 | |
*/ | |
private ThymeleafViewResolver thymeleafViewResolver() { | |
ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); | |
viewResolver.setTemplateEngine(templateEngine()); | |
// 注意“order”和“viewNames”是可选的 | |
viewResolver.setOrder(1); | |
viewResolver.setViewNames(new String[]{".html"}); | |
return viewResolver; | |
} | |
/** | |
* 创建模版引擎并为模板引擎注入模板解析器 | |
* | |
* @return org.thymeleaf.spring5.SpringTemplateEngine | |
* @author yanganyu | |
* @date 2018/10/15 14:33 | |
*/ | |
@Bean | |
public SpringTemplateEngine templateEngine() { | |
SpringTemplateEngine templateEngine = new SpringTemplateEngine(); | |
templateEngine.setTemplateResolver(templateResolver()); | |
templateEngine.setEnableSpringELCompiler(true); | |
return templateEngine; | |
} | |
/** | |
* 创建模版解析器 | |
* | |
* @return org.thymeleaf.templateresolver.ITemplateResolver | |
* @author yanganyu | |
* @date 2018/10/15 14:34 | |
*/ | |
@Bean | |
public ITemplateResolver templateResolver() { | |
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); | |
templateResolver.setPrefix("classpath:/templates/"); | |
templateResolver.setSuffix(".html"); | |
templateResolver.setCharacterEncoding("UTF-8"); | |
templateResolver.setTemplateMode(TemplateMode.HTML); | |
templateResolver.setCacheable(false); | |
return templateResolver; | |
} | |
/** | |
* 配置@Repsonsebody使用fastjson | |
* | |
* @param converters converters | |
* @return void | |
* @author yanganyu | |
* @date 2018/10/15 16:06 | |
*/ | |
@Override | |
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { | |
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); | |
converters.add(0, converter); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment