목록BE/Thymeleaf (25)
오봉이와 함께하는 개발 블로그
템플릿 조각 웹 페이지를 개발할 때는 상단, 하단, 좌측 카테고리 등 여러 페이지에서 함께 사용하는 공통 영역이 많이 있다. 공토 영역 코드를 복사해서 모든 페이지에 사용하면 변경시 여러 페이지를 다 수정해야 하는 불상사가 생긴다. 타임리프는 이런 문제를 해결하기 위해 템플릿 조각과 레이아웃 기능을 지원한다. 코드 @Controller @RequestMapping("/template") public class TemplateController { @GetMapping("/fregment") public String template() { return "template/fragment/fragmentMain"; } } /resources/templates/template/fragment/footer.htm..
자바스크립트 인라인 타임리프는 자바스크립트에서 타임리프를 편리하게 사용할 수 있는 자바스크립트 인라인 기능을 제공한다. 자바스크립트 인라인 기능은 다음과 같이 적용하면 된다. 결과 자바스크립트 인라인 사용 전 - 결과 자바스크립트 인라인 사용 후 - 결과 텍스트 렌더링 var username = [[${user.username}]]; -> 인라인 사용 전 : var username = userA; -> 인라인 사용 후 : var username = "userA"; 인라인 사용 전 렌더링 결과를 보면 userA라는 변수가 그대로 있다. 타임리프 입장에서는 정확하게 렌더링 했지만 개발자는 "userA"라는 값을 변수 var username에 저장하고 싶었을 것. 결과적으로 보면 인라인을 사용하기 전에 use..
블록 은 HTML 태그가 아닌 타임리프의 유일한 자체 태그다. @GetMapping("/block") public String block(Model model) { addUsers(model); return "basic/block"; } 사용자 이름1 사용자 나이1 요약 결과 사용자 이름1 userA 사용자 나이1 10 요약 userA / 10 사용자 이름1 userB 사용자 나이1 20 요약 userB / 20 사용자 이름1 userC 사용자 나이1 30 요약 userC / 30 설명 타임리프의 특성상 HTML 태그안에 속성으로 기능을 정의해서 사용한다. 하지만 HTMl 문서처럼 두 개를 한번에 묶어서 반복 출력하고 싶을 때 즉, 사용하기 애매한 경우 사용하면 된다. th:block은 렌더링시 제거된다..
주석 바로 코드부터 보자 @GetMapping("/comments") public String comments(Model model) { model.addAttribute("data", "Spring!"); return "basic/comments"; } 예시 html data 1. 표준 HTML 주석 2. 타임리프 파서 주석 html data 3. 타임리프 프로토타입 주석 결과 예시 Spring! 1. 표준 HTML 주석 2. 타임리프 파서 주석 3. 타임리프 프로토타입 주석 Spring! 1. 표준 HTML 주석 표준 HTML 주석은 타임리프가 렌더링 하지 않고, 그대로 남겨둔다. 2. 표준 HTML 주석 타임리프 파서 주석은 타임리프의 진짜 주석이다. 렌더링에서 주석 부분을 제거한다. 3. 타임리프..
조건부 평가 타임리프의 조건식이다. if, unless가 있다. unless는 if의 반대다. 코드 @GetMapping("/condition") public String condition(Model model) { addUsers(model); return "basic/condition"; } if, unless count username age 1 username 0 switch count username age 1 username 10살 20살 기타 if, unless 타임리프는 해당 조건이 맞지 않으면 태그 자체를 렌더링하지 않는다 일 때 조건이 false인 경우 ...부분 자체가 렌더링 되지 않고 사라진다. switch *은 만족하는 조건이 없을 때 사용하는 디폴트다. switch-case에서 ..