2017-01-23 2 views
3

Как я могу получить unescaped Вывод JavaScript с помощью Thymeleaf 3.0.x? Сбежавшая инкрустация работает просто отлично. Пример:Thymeleaf Unescaped JavaScript Inlining

pom.xml

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf-spring3</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 

servelet:

model.addAttribute("test", "testing..."); 

HTML шаблон:

<script th:inline="javascript"> 
/*<![CDATA[*/ 
    [[${test}]] 
    [(${test})] 
/*]]>*/ 
</script> 

генерируемый вывод:

<script> 
/*<![CDATA[*/ 
    'testing...' 
    [(${test})] 
/*]]>*/ 
</script> 

Таким образом, выведенное выражение [[ ]] работает, но неэкранированное выражение [()] этого не делает. Мне нужно генерировать js условно, и нет «простого» решения, поэтому это было бы очень полезно. Кто-нибудь мог заставить это работать? Любая помощь очень ценится!

+0

Извините, я не могу воспроизвести это. Я пробовал Thymeleaf 3.0.1, 3.0.2 и 3.0.3 (с диалектом Spring 4, хотя без Spring Boot), и все они работают нормально. – RoToRa

+0

@RoToRa спасибо, я подумал, что это связано с зависимостями. Я получил его на работу, я отправлю ответ. – ikcodez

ответ

1

я, наконец, получил его на работу с Spring Ботинками со следующими четыре зависимостей, все четыре быть необходимо (я использую последние версии, в настоящее время):

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency>  
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>org.thymeleaf</groupId> 
    <artifactId>thymeleaf-spring4</artifactId> 
    <version>3.0.3.RELEASE</version> 
</dependency> 
<dependency> 
    <groupId>nz.net.ultraq.thymeleaf</groupId> 
    <artifactId>thymeleaf-layout-dialect</artifactId> 
    <version>2.1.2</version> 
</dependency> 

Надеется, что это помогает.