Groovy-де Белгі

All lectures for KK purposes
Деңгей , Сабақ
Қол жетімді

Groovy тіліндегі белгі шаблоны әу бастан XML-тектес белгілерді (XML, XHTML, HTML5 және басқалары) генерациялау үшін жасалған, бірақ сіз оны кез-келген мәтіндік контентті генерациялау үшін қолдана аласыз. Spring Framework Groovy тіліндегі белгіні Spring MVC-де қолдану үшін кіріктірілген интеграциясына ие.

Groovy тіліндегі белгі шаблонын қолдану үшін Groovy 2.3.1+ қажет.
Конфигурация

Келесі мысал Groovy тіліндегі белгі шаблонын қалай конфигурациялауға болатынын көрсетеді:

Java
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
        registry.groovy();
    }
    // Groovy тіліндегі белгі шаблонын конфигурациялаймыз...
    @Bean
    public GroovyMarkupConfigurer groovyMarkupConfigurer() {
        GroovyMarkupConfigurer configurer = new GroovyMarkupConfigurer();
        configurer.setResourceLoaderPath("/WEB-INF/");
        return configurer;
    }
}
Kotlin
@Configuration
@EnableWebMvc
class WebConfig : WebMvcConfigurer {
    override fun configureViewResolvers(registry: ViewResolverRegistry) {
        registry.groovy()
    }
    // Groovy тіліндегі белгі шаблонын конфигурациялаймыз...
    @Bean
    fun groovyMarkupConfigurer() = GroovyMarkupConfigurer().apply {
        resourceLoaderPath = "/WEB-INF/"
    }
}

Келесі мысал дәл осыны XML-де қалай конфигурациялауға болатынын көрсетеді:

<mvc:annotation-driven/>
<mvc:view-resolvers>
    <mvc:groovy/>
</mvc:view-resolvers>
<!-- Groovy тіліндегі белгі шаблонын конфигурациялаймыз... -->
<mvc:groovy-configurer resource-loader-path="/WEB-INF/"/>

Мысал

Дәстүрлі шаблондардан айырмашылығы, Groovy тіліндегі белгі 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('Бұл HTML контентінің мысалы')
    }
}
Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION