2017-05-01 4 views
1

Ich benutze Thymeleaf Vorlage, um E-Mails zu senden. Ich habe eine Vorlage wie:Thymeleaf leeren Wert überprüfen

My name is ${name} 

Wenn name leer ist oder null, ich will nicht die E-Mail senden. Gibt es eine Thymeleaf-Eigenschaft, die ich einstellen kann, die einen Fehler erzeugt und die Post nicht sendet? Das Senden von "Mein Name ist" in einer E-Mail ohne den Wert ergibt keinen Sinn.

Ich erhalte alle Werte aus dem Thymeleaf Kontext und die Variablen eines anderen Typs sein könnten wie List, Map, etc. Ich habe folgendes zu versucht, aber es ist nicht mein Problem zu lösen, da ein Objekt immer zur Verfügung:

HashMap<String,Object> allVar = ctx.getVariables(); 
boolean isVAlid; 

for(HashMap.Entry<String, Object> entry : allVar.entrySet()){ 
    logger.info("[ESUB2.0] key and Value" + entry.getKey() + "Value" + entry.getValue()); 
    if(entry.getValue()==null){ 
     logger.info("[ESUB2.0] Null check ") 
     isVAlid = true 
    } 
} 
+0

Wenn Sie den Wert von 'name' gesetzt, auf der' ctx', konnte nicht Sie erzeugen nur Ihre Fehler und überspringen Sie den Code, um die E-Mail zu senden, wenn es null ist ? Wie 'if (StringUtils.isEmpty (name)) {log.error (" Nullname "); Rückkehr; } ' – bphilipnyc

Antwort

1

in Ihrem Code ersetzen nur isVAlid = true von isVAlid = false da, wenn ein Wert null ist, ist es nicht gültig ist:

HashMap<String,Object> allVar = ctx.getVariables(); 
boolean isVAlid; 
for(HashMap.Entry<String, Object> entry : allVar.entrySet()){ 
    logger.info("[ESUB2.0] key and Value" + entry.getKey() + "Value" + entry.getValue()); 
    if(entry.getValue()==null){ 
     logger.info("[ESUB2.0] Null check "); 
     isVAlid = false; 
    } 
} 

ersetzen entry.getValue()==null von StringUtils.isEmpty() von org.apache.commons.lang für leer ("") und null Strings

+0

Danke Sebastien .. Ich tat das während des Debuggens. Ich wünschte nur, es könnte einen besseren Weg geben, dies zu tun .. –