@GetMapping("/operation")
public String operation(Model model){
model.addAttribute("nullData", null);
model.addAttribute("data", "Spring!");
return "basic/operation";
}
nullData에는 null을 담고, data에는 "Spring!"을 담았다.
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>산술 연산
<ul>
<li>10 + 2 = <span th:text="10 + 2"></span></li>
<li>10 % 2 == 0 = <span th:text="10 % 2 == 0"></span></li>
</ul>
</li>
<li>비교 연산
<ul>
<li>1 > 10 = <span th:text="1 > 10"></span></li>
<li>1 gt 10 = <span th:text="1 gt 10"></span></li>
<li>1 >= 10 = <span th:text="1 >= 10"></span></li>
<li>1 ge 10 = <span th:text="1 ge 10"></span></li>
<li>1 == 10 = <span th:text="1 == 10"></span></li>
<li>1 != 10 = <span th:text="1 != 10"></span></li>
</ul>
</li>
<li>조건식
<ul>
<li>(10 % 2 == 0)? '짝수':'홀수' = <span th:text="(10 % 2 == 0)?'짝수':'홀수'"></span></li>
</ul>
</li>
<li>Elvis 연산자
<ul>
<li>${data}?: '데이터가 없습니다.' = <span th:text="${data}?: '데이터가없습니다.'"></span></li>
<li>${nullData}?: '데이터가 없습니다.' = <span th:text="${nullData}?:'데이터가 없습니다.'"></span></li>
</ul>
</li>
<li>No-Operation
<ul>
<li>${data}?: _ = <span th:text="${data}?: _">데이터가 없습니다.</span></li>
<li>${nullData}?: _ = <span th:text="${nullData}?: _">데이터가 없습니다.</span></li>
</ul>
</li>
</ul>
</body>
</html>
연산은 그냥 저번에 리터럴 배우면서 문자 얘기 했던 것 처럼 숫자같은 것도 인식이 되므로 연산 그냥 쓰면 됨. 산술연산.
==, !, !=, >=, <= 같은 건 그냥 사용해도 괜찮지만,
> 같은 건 >나 짧게 gt 이렇게 해서 써야 한다. html 문서 내에 쓰는거라 아무리 타임리프 꺼고 그걸 자바가 실행해주는 거라도 영향이 있을 수 있는 듯.
<span th:text="(10 % 2 == 0)?'짝수':'홀수'"></span>
삼항연산자 가능.
맞는 거 쓰는 거임.
<span th:text="${data}?: '데이터가없습니다.'"></span>
<span th:text="${nullData}?:'데이터가 없습니다.'"></span>
저거는 삼항연산자와 비슷해 보이는데, 데이터가 있으면 저 데이터를 찍는거고, 없으면 오른쪽에 한 걸 찍는거임.
굳이 따지자면 이항연산자네.
${key}?:'key에값이null등없으면이거'
<span th:text="${data}?: _">데이터가 없습니다.</span>
<span th:text="${nullData}?: _">데이터가 없습니다.</span>
이렇게 그냥 _ 쓰는건 no-operation 이라고 해서 데이터가 null일 경우 그냥 그 부분 html만 읽는다.
<span th:text="${nulldata}?: _">데이터가 없습니다.</span>여기서 데이터 없을 경우
<span>데이터가 없습니다.</span> 이렇게. 타임리프가 없었던 것 처럼
- 산술 연산
- 10 + 2 = 12
- 10 % 2 == 0 = true
- 비교 연산
- 1 > 10 = false
- 1 gt 10 = false
- 1 >= 10 = false
- 1 ge 10 = false
- 1 == 10 = false
- 1 != 10 = true
- 조건식
- (10 % 2 == 0)? '짝수':'홀수' = 짝수
- Elvis 연산자
- ${data}?: '데이터가 없습니다.' = Spring!
- ${nullData}?: '데이터가 없습니다.' = 데이터가 없습니다.
- No-Operation
- ${data}?: _ = Spring!
- ${nullData}?: _ = 데이터가 없습니다.
위처럼 연산이 된다. 걍 자바처럼 쓰면 된다.
'스프링 > 4. 스프링 MVC-2' 카테고리의 다른 글
9. 타임리프 반복문 (0) | 2023.08.22 |
---|---|
8. 타임리프 속성 (0) | 2023.08.22 |
6. thymeleaf 리터럴 (0) | 2023.08.22 |
5. thymeleaf url (0) | 2023.08.21 |
4. 유틸 객체, 시간표현 (0) | 2023.08.21 |