Groovy Markup

The Groovy Markup Template Engine 主要用於生成 XML 樣式的標記(XML、XHTML、HTML5 等),但你也可以用它來生成任何基於文字的內容。Spring Framework 內建了與 Groovy Markup 一起使用 Spring MVC 的整合。

Groovy Markup Template 引擎需要 Groovy 2.3.1+ 版本。

配置

以下示例展示瞭如何配置 Groovy Markup Template 引擎

  • Java

  • Kotlin

@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {

	@Override
	public void configureViewResolvers(ViewResolverRegistry registry) {
		registry.groovy();
	}

	// Configure the Groovy Markup Template Engine...

	@Bean
	public GroovyMarkupConfigurer groovyMarkupConfigurer() {
		GroovyMarkupConfigurer configurer = new GroovyMarkupConfigurer();
		configurer.setResourceLoaderPath("/WEB-INF/");
		return configurer;
	}
}
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {

	override fun configureViewResolvers(registry: ViewResolverRegistry) {
		registry.groovy()
	}

	// Configure the Groovy Markup Template Engine...

	@Bean
	fun groovyMarkupConfigurer() = GroovyMarkupConfigurer().apply {
		resourceLoaderPath = "/WEB-INF/"
	}
}

以下示例展示瞭如何在 XML 中進行相同的配置

<mvc:annotation-driven/>

<mvc:view-resolvers>
	<mvc:groovy/>
</mvc:view-resolvers>

<!-- Configure the Groovy Markup Template Engine... -->
<mvc:groovy-configurer resource-loader-path="/WEB-INF/"/>

示例

與傳統的模板引擎不同,Groovy Markup 依賴於使用構建器語法的 DSL。以下示例展示了一個 HTML 頁面示例模板

yieldUnescaped '<!DOCTYPE html>'
html(lang:'en') {
	head {
		meta('http-equiv':'"Content-Type" content="text/html; charset=utf-8"')
		title('My page')
	}
	body {
		p('This is an example of HTML contents')
	}
}