JavaRush /Курсы /All lectures for AM purposes /Groovy-ի վրա հիմնված նշագրում

Groovy-ի վրա հիմնված նշագրում

All lectures for AM purposes
1 уровень , 605 лекция
Открыта

Groovy լեզվի նշագրության տեմպլատորը առաջին հերթին նախատեսված է XML նման նշագրության (XML, XHTML, HTML5 և այլնի) գեներացման համար, բայց դու կարող ես այն օգտագործել ցանկացած տեքստային բովանդակություն գեներացնելու համար։ Spring Framework-ը ունի ներկառուցված ինտեգրացիա՝ օգտագործելու Spring MVC-ն Groovy լեզվով նշագրության հետ։

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('This is an example of HTML contents')
    }
}
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ