framework-web:spring:templates

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
framework-web:spring:templates [2019/01/22 11:55] – [Bases] jcheronframework-web:spring:templates [2023/09/26 23:20] (Version actuelle) jcheron
Ligne 1: Ligne 1:
 ====== Templates ====== ====== Templates ======
-Avec Spring Boot, le développeur a la choix du moteur de template...+Avec Spring Boot, le développeur a le choix du moteur de template...
  
 ===== Mustache ===== ===== Mustache =====
Ligne 30: Ligne 30:
  
 === Blocks === === Blocks ===
 +== Objet ==
  
 1 Block peut permettre d'afficher les membres d'un objet : 1 Block peut permettre d'afficher les membres d'un objet :
Ligne 38: Ligne 39:
 {{/element}} {{/element}}
 </sxh> </sxh>
 +
 +== Collections ==
  
 Il peut également permettre de parcourir une collection d'objets : Il peut également permettre de parcourir une collection d'objets :
Ligne 48: Ligne 51:
 </sxh> </sxh>
  
 +== Blocks vides ==
  
 Pour les objets null ou les listes vides, on utilise l'inverted section : Pour les objets null ou les listes vides, on utilise l'inverted section :
 <sxh bash> <sxh bash>
 {{^elements}} {{^elements}}
-  Au element ! :(+  Aucun element ! :(
 {{/elements}} {{/elements}}
 </sxh> </sxh>
 +
 +=== Vues partielles ===
 +Il est possible d'inclure un template dans un autre : inclusion du template partiel **header.html** situé dans **/partials/** 
 +<sxh bash;gutter:false>
 +{{> /partials/header}}
 +</sxh>
 +
 +=== Valeurs nulles ===
 +<WRAP round important>
 +Par défaut, **Mustache** n'accepte pas les valeurs nulles sur un membre d'objet (génération d'une exception), il faut donc modifier sa configuration par défaut.
 +</WRAP>
 +
 +<sxh java>
 +@Configuration
 +public class AppConfig {
 +  @Bean
 +  public BeanPostProcessor mutacheHackerBeanPostProcessor() {
 +    return new BeanPostProcessor() {
 +      @Override
 +      public Object postProcessBeforeInitialization(Object bean, String beanName)
 +          throws BeansException {
 +        return bean;
 +      }
 +
 +      @Override
 +      public Object postProcessAfterInitialization(Object bean, String beanName)
 +          throws BeansException {
 +        if (ClassUtils.isAssignable(bean.getClass(), Mustache.Compiler.class)
 +            || "mustacheCompiler".equals(beanName)) {
 +          Mustache.Compiler compiler = (Mustache.Compiler) bean;
 +          return compiler.defaultValue("").nullValue("");
 +        }
 +
 +        return bean;
 +      }
 +    };
 +  }
 +}
 +</sxh>
 +
 +
 +
  • framework-web/spring/templates.1548154511.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)