Groovy Markup
Groovy Markup 模板引擎主要用于生成类似 XML 的标记(XML, XHTML, HTML5 等),但也可以用于生成任何基于文本的内容。
配置方式
java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.groovy();
}
@Bean
public GroovyMarkupConfigurer groovyMarkupConfigurer() {
GroovyMarkupConfigurer configurer = new GroovyMarkupConfigurer();
configurer.setResourceLoaderPath("/WEB-INF/templates/");
return configurer;
}
}模板示例
Groovy Markup 不像传统的文本插值模板,它使用 DSL(领域特定语言)的 Builder 语法:
groovy
yieldUnescaped '<!DOCTYPE html>'
html(lang:'en') {
head {
meta('http-equiv':'"Content-Type" content="text/html; charset=utf-8"')
title('我的页面')
}
body {
p('这是一个 HTML 内容示例')
}
}补充教学
1. Builder 模式的优势
由于使用的是纯 Groovy 代码,你可以利用所有的编程能力(循环、判断、方法调用)来构建页面,且没有字符串拼接的性能隐患。它非常适合生成结构严谨的 XML 数据。
2. 类型安全
与纯文本模板相比,DSL 语法更容易在开发阶段通过编译器检查出标签未闭合或属性错误。
3. 适用场景
如果你的团队非常熟悉 Groovy,或者正在从传统的 Groovy 框架(如 Grails)转向 Spring MVC,使用 Groovy Markup 会非常得心应手。