스프링/4. 스프링 MVC-2 87

7. 타임리프 연산

@GetMapping("/operation") public String operation(Model model){ model.addAttribute("nullData", null); model.addAttribute("data", "Spring!"); return "basic/operation"; } nullData에는 null을 담고, data에는 "Spring!"을 담았다. 산술 연산 10 + 2 = 10 % 2 == 0 = 비교 연산 1 > 10 = 1 gt 10 = 1 >= 10 = 1 ge 10 = 1 == 10 = 1 != 10 = 조건식 (10 % 2 == 0)? '짝수':'홀수' = Elvis 연산자 ${data}?: '데이터가 없습니다.' = ${nullData}?: '데이터가 없습니다...

6. thymeleaf 리터럴

리터럴이란 변하지 않는 값, 그러니까.. const int num = 100; 여기서 num이 상수라면 100이 리터럴 이라고 한다.. 타임리프에도 리터럴이 있는데, 일단 기본적으로 리터럴이란 어떤 의미를 가지고 있는 고정된 값? 같은 의미라고 보면 될려나? 파이나 빛의 속도같은? 일단 문자는 리터럴 일 수 밖에 없다. 그다음 숫자도 사실 리터럴. true, false 같은 것도 null도. 어.. 아마 리터럴이 그 매직넘버 그런 식으로 쓰는 거 말하는 듯. 즉, 어떤 모델에 담겨오거나 아니면 param이나 기본 객체같은 게 아닌 내가 직접 문자, 숫자, false, null 이런 거 쓸 때 말하는 듯. @GetMapping("/literal") public String literal(Model mode..

5. thymeleaf url

URL 링크 basic url hello query param path variable path variable + query parameter @GetMapping("/link") public String link(Model model){ model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } 일단 동적 템플릿에 넘길 때, param1이라는 키로 data1이라는 문자열값을, param2는 data2라는 문자열 값을 줬다. 저기 보면, 일단 타임리프에서 링크 표현할때는 "@{/hello}" 이렇게 표현한다. @{/hello} 이건 절대경로 @{hello} 이건 상대경로다. 예를 들..

1. 타임리프 text escaped, unescaped

@Controller @RequestMapping("/basic") public class BasicController { @GetMapping("/text-basic") public String textBasic(Model model){ model.addAttribute("data","Hello Spring!"); return "basic/text-basic"; } @GetMapping("/text-unescaped") public String textUnescaped(Model model){ model.addAttribute("data","Hello Spring!"); return "basic/text-unescaped"; } } 간단하게 basic은 model에 data라는 키로 문자열을 담아서 넘..