본문 바로가기
JAVA/Spring

[타임리프] Property or field '~' cannot be found on null 해결방법

by lumayi 2022. 7. 1.

나의 상황

컨트롤러에서 받은 데이터를 화면단에 뿌려주는 과정에서 하나의 필드가 null이 들어오자 생긴 에러

원인

💡 th:if =”${cardList.costInfo.amount == ‘0’ }”

여기서 오류가 발생했는데, costInfo자체가 null이었다.

해결방법

    1. 컨트롤러:
      //기존:
      model.addAttribute(”cardList”, cardList );
      //빈 null의 값을 넣지 말고 새로운 객체를 보낸다
      
      //변경:
      if( cardList ≠ null ){ model.addAttribute(”cardList”, cardList ); } 
      else model.addAttribute(”cardList”, new CardList);
      //이렇게 카드 객체를 보내면 해결 할 수 있다.
    2. 타임리프 (추천)
       th:if =”${cardList.costInfo?.amount == ‘0’ };

      위에서 if문으로 분기를 치는 방법보다 훨씬 간단한 방법!
      null이 뜨는 값 뒤에 ?(물음표)를 넣어주면 타임리프단에서 직접 null을 검사 후, 값이 있을 때만 보여주게 된다!

 

반응형