本文研究的主要是SpringMVC中使用Thymeleaf模板引擎的相關(guān)內(nèi)容,具體介紹如下。
Thymeleaf提供了一組Spring集成,允許您將其用作Spring MVC應(yīng)用程序中全面替代JSP的功能。
Maven依賴
1
2
3
4
5
6
|
<!-- thymeleaf-spring4 --> < dependency > < groupId >org.thymeleaf</ groupId > < artifactId >thymeleaf-spring4</ artifactId > < version >3.0.6.RELEASE</ version > </ dependency > |
配置模板解析器
JavaConfig的方式:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
@Bean public SpringResourceTemplateResolver templateResolver(){ // SpringResourceTemplateResolver自動(dòng)與Spring自己集成 // 資源解決基礎(chǔ)設(shè)施, 強(qiáng)烈推薦。 SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicationContext( this .applicationContext); templateResolver.setPrefix( "/WEB-INF/templates/" ); templateResolver.setSuffix( ".html" ); // HTML是默認(rèn)值, 為了清楚起見, 在此處添加。 templateResolver.setTemplateMode(TemplateMode.HTML); // 默認(rèn)情況下, 模板緩存為true。如果您想要設(shè)置為false // 模板在修改時(shí)自動(dòng)更新。 templateResolver.setCacheable( true ); return templateResolver; } @Bean public SpringTemplateEngine templateEngine(){ // SpringTemplateEngine自動(dòng)應(yīng)用SpringStandardDialect // 并啟用Spring自己的MessageSource消息解析機(jī)制。 SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver()); // 使用Spring 4.2.4或更高版本啟用SpringEL編譯器 // 可以加快大多數(shù)情況下的執(zhí)行速度, 但是當(dāng)一個(gè)模板中 // 的表達(dá)式在不同數(shù)據(jù)類型之間重用時(shí), // 可能與特定情況不兼容, 因此該標(biāo)志默認(rèn)為“false” // 以實(shí)現(xiàn)更安全的向后兼容性。 templateEngine.setEnableSpringELCompiler( true ); return templateEngine; } |
XML的方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<!-- SpringResourceTemplateResolver自動(dòng)與Spring自己集成 --> <!-- 資源解決基礎(chǔ)設(shè)施, 強(qiáng)烈推薦。 --> <bean id = "templateResolver" class = "org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver" > <property name = "prefix" value = "/WEB-INF/views/" /> <property name = "suffix" value = ".html" /> <!-- HTML是默認(rèn)值, 為了清楚起見, 在此處添加。 --> <property name = "templateMode" value = "HTML" /> <!-- 默認(rèn)情況下, 模板緩存為 true 。如果您想要設(shè)置為 false --> <!-- 模板在修改時(shí)自動(dòng)更新。 --> <property name = "cacheable" value = "true" /> </bean> <!-- SpringTemplateEngine自動(dòng)應(yīng)用SpringStandardDialect并 --> <!-- 使用Spring自己的MessageSource消息解析機(jī)制。 --> <bean id = "templateEngine" class = "org.thymeleaf.spring4.SpringTemplateEngine" > <property name = "templateResolver" ref = "templateResolver" /> <!-- 使用Spring 4.2 . 4 或更高版本啟用Spring EL編譯器 --> <!-- 可以加快大多數(shù)情況下的執(zhí)行速度, 但是當(dāng)一個(gè)模板中 --> <!-- 的表達(dá)式在不同數(shù)據(jù)類型之間重用時(shí), --> <!-- 可能與特定情況不兼容, 因此該標(biāo)志默認(rèn)為“ false ” --> <!-- 以實(shí)現(xiàn)更安全的向后兼容性。 --> <property name = "enableSpringELCompiler" value = "true" /> </bean> |
Thymeleaf中的視圖和視圖分解器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@Bean public ThymeleafViewResolver viewResolver(){ ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine()); // 注意“order”和“viewNames”是可選的 viewResolver.setOrder( 1 ); viewResolver.setViewNames( new String[] { ".html" , ".xhtml" }); return viewResolver; } 13420.2 Thymeleaf中的視圖和視圖分解器 @Bean public ThymeleafViewResolver viewResolver(){ ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); viewResolver.setTemplateEngine(templateEngine()); // 注意“order”和“viewNames”是可選的 viewResolver.setOrder( 1 ); viewResolver.setViewNames( new String[] { ".html" , ".xhtml" }); return viewResolver; } |
或者是以XML的格式:
1
2
3
4
5
6
|
< bean class = "org.thymeleaf.spring4.view.ThymeleafViewResolver" > < property name = "templateEngine" ref = "templateEngine" /> <!-- 注意“order”和“viewNames”是可選的 --> < property name = "order" value = "1" /> < property name = "viewNames" value = "*.html,*.xhtml" /> </ bean > |
總結(jié)
以上就是本文關(guān)于SpringMVC中使用Thymeleaf模板引擎實(shí)例代碼的全部內(nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/w_x_z_/article/details/72730603