티스토리 뷰

반응형

오늘은 view 단에서 보여줘야 하는 데이터가 없으면(아마도 DB에서 삭제된 경우 또는 empty string 이 입력된 경우) 프론트단에 데이터를 보여주는 div 태그를 없애야 할 때 사용하는 소스코드입니다.

 

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

그런데 문제가 하나 더 있네요. 만약 null 값이 아니라 빈 문자열이 들어온다면 어떻게 해야 하죠? 그럼 코드가 이런식이 되어야 할 것 같은데...

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

데이터가 null 일수도 있고 빈 문자열일 수도 있을 때도 있다면 조건문을 두 개 써야 겠군요. 그런데 그냥 컨트롤러에서 처리해서 넘겨준다면 조금 더 편할 것 같습니다.

if (examData.isEmpty()) {
    model.addAttribute("examData", "nothing");
} else {
    model.addAttribute("examData", examData);
}

그리고 뷰에서는

<div th:if="${examData != 'nothing'}"> ... </div>

이렇게 받으면 되는데 솔직히 좀 마음에 들지는 않네요. 오히려 자바 코드가 다섯줄이나 늘어나 버렸으니, 사실 thymeleaf를 사용하고 있다면 아주 간단하게 해결할 수 있습니다.

<div th:if="${not #strings.isEmpty(examData)}"> ... </div>

isEmpty()를 사용하면 들어온 값이 null 이거나 빈 문자열일 때 true를 반환합니다. 체크를 하기 전에 trim() 메소드를 적용하기 때문에 빈 줄이나 공백도 같이 걸러진다는 것을 유의 해야 합니다.

 

#strings utility 에는 String 객체를 위한 method드 들이 존재 합니다. 다른 메소드 들은 여기서 확인할 수 있습니다.

반응형

'Client' 카테고리의 다른 글

[TypeScript] JSON 모듈  (2) 2021.12.17
[TypeScript] Fetch API 에 대해 알아보자  (0) 2021.12.09
jQuery select2 사용하기  (4) 2021.12.08
Thymeleaf 기본 문법  (0) 2021.11.29
Javascript 의 JSON foreach 를 사용하기  (0) 2021.08.30
클립보드에 내용 복사 구현하기  (0) 2021.06.29
댓글
공지사항