목록BE/Thymeleaf (25)
오봉이와 함께하는 개발 블로그
반복 타임리프에서 반복은 th:each를 사용한다. 추가로 반복에서 사용할 수 있는 여러 상태 값을 지원한다. 코드 @GetMapping("/each") public String each(Model model) { addUsers(model); return "basic/each"; } private void addUsers(Model model) { List list = new ArrayList(); list.add(new User("userA", 10)); list.add(new User("userB", 20)); list.add(new User("userC", 30)); model.addAttribute("users", list); } 기본 테이블 username age username 0 반복 상태..
속성 값 설정 타임리프 태그 속성(Attribute) 타임리프는 주로 HTML 태그에 th:*속성을 지정하는 방식으로 사용한다. th:*로 속성을 지정하면 기존 속성을 대체한다. 기존 속성이 없으면 새로 만든다. 예시 @GetMapping("/attribute") public String attribute() { return "basic/attribute"; } 속성 설정 속성 추가 - th:attrappend = - th:attrprepend = - th:classappend = checked 처리 - checked o - checked x - checked=false 속성 설정 th:*속성을 지정하면 타임리프는 기존 속성을 th:*로 지정한 속성으로 대체한다. 는 로 바뀐다. 속성 추가 th:attr..
연산 타임리프 연산은 자바와 크게 다르지 않다. HTML안에서 사용하기 때문에 HTML 엔티티를 사용하는 부분만 주의하자. 코드 추가, 결과 @GetMapping("/operation") public String operation(Model model) { model.addAttribute("nullData", null); model.addAttribute("data", "Spring!"); return "basic/operation"; } ~~html 산술 연산 10 + 2 = 10 % 2 == 0 = 비교 연산 1 > 10 = 1 gt 10 = 1 >= 10 = 1 ge 10 = 1 == 1 = 1 != 1 = 조건식 (10 % 2 == 0)? '짝수':'홀수' = Elvis 연산자 ${data}?:..
리터럴 리터럴은 소스 코드상에 고정된 값을 말하는 용어다. 예를 들어 다음 코드에서 "Hello"는 문자 리터럴, 10, 20는 숫자 리터럴이다. String a = "Hello" int a = 10 * 20타임리프는 다음과 같은 리터럴이 있다. 문자 : 'hello' 숫자 : 10 불린 : true, false null : null 타임리프에서 문자 리터럴은 항상 '(작은 따옴표)로 감싸야 한다. 하지만 문자를 항상 작은 따옴표로 감싸는 것은 번거로운 일이기 때문에 공백 없이 쭉 이어진다면 하나의 의미있는 토큰으로 인지해서 작은 따옴표를 생략할 수 있다. 조건 : A-Z, a-z, 0-9, [], ., -, _ 오류 문자 리터럴은 원칙상 '로 감싸야 하는데 중간에 공백이 하..
URL 링크 타임리프에서 URL을 생성할 때는 @{...}문법을 사용하면 된다 코드, 결과 @GetMapping("/link") public String link(Model model) { model.addAttribute("param1", "data1"); model.addAttribute("param2", "data2"); return "basic/link"; } URL 링크 basic url hello query param path variable path variable + query parameter 해당 코드를 실행하면 4개의 링크가 만들어진다. http://localhost:8080/hello http://localhost:8080/hello?param1=data1¶m2=data2 h..