2017-05-01 62 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 ..我在调试的时候这样做了。只是希望可以有更好的方法来做到这一点.. –