Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to check null and empty condition using Thymeleaf in one single operation?

Is there any way to check both null and empty condition in Thymeleaf?

Approach 1

1) .variable1?.variable2?.variable3
2) variable!=null 
3) variable!=''

If we combine two conditions like (variable!='' And variable!=null) I am having issue when rendering.

I am trying following sample

${#strings.concat(#strings.concat('class ',variable1?.variable2), ' ', variable1?.variable2?.variable3)}

I also used containsKey as well but it is behaving differently.

like image 758
Pradeep Avatar asked Jul 12 '18 08:07

Pradeep


2 Answers

Try ${#strings.isEmpty(variable)}.

From Tutorial | Using Thymeleaf | Strings:

/*
 * Check whether a String is empty (or null). Performs a trim() operation before check
 */
${#strings.isEmpty(name)}
like image 102
naXa Avatar answered Oct 03 '22 17:10

naXa


In order to check null or empty string using thymeleaf expressions, Use this approach : ---

<div th:if= "${searchResults.results != null}">

OR, this :--

<div th:if= "${searchResults.results != ''}">

Furthermore, you can check the empty or null object on your controller itself and then send the response on your thymeleaf-html page accordingly, like this :--
1.) Your Controller :-

 List ls = //some data from you DAO
    if(ls.isEmpty()){
         model.addAttribute("response","NoData");
      }else{
         model.addAttribute("response",ls);
     }

2.) Then on your Thymleaf page :- - -

<th:block th:if="${response=='NoData'}"> No Data Found </th:block>

PS - I've answered the same question here which helps the questioner hope it helps you as well :-- ThymeLeaf: Not Equal expression in th:if

like image 20
Sumit Avatar answered Oct 03 '22 17:10

Sumit