2017-05-01 115 views
1

我使用Thymeleaf模板發送電子郵件。我有這樣一個模板:Thymeleaf空值檢查

My name is ${name} 

如果name爲空或null,我不想發送電子郵件。是否有任何Thymeleaf屬性,我可以設置這將產生一個錯誤,不會發送郵件?因爲在沒有價值的電子郵件中發送「我的名字是」沒有任何意義。

我從Thymeleaf背景讓所有的值和變量可以是不同類型的像ListMap,等我曾嘗試以下過,但因爲對象是永遠不會解決我的問題可用:

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

當您設置的'name',在'ctx',不能你剛纔生成您的錯誤,並跳過代碼發送電子郵件,如果它是空值?像'if(StringUtils.isEmpty(name)){log.error(「Null name」);返回; }' – bphilipnyc

回答

1

在你的代碼,只是isVAlid = false更換isVAlid = true因爲如果值爲空,這不是有效的:

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; 
    } 
} 

由0替換entry.getValue()==null的空("")和null字符串

+0

謝謝Sebastien ..我在調試的時候這樣做了。只是希望可以有更好的方法來做到這一點.. –