템플릿을 만들다 보면 빈번하게 같은 파트를 작성해야 하는 경우가 있다 (footers , header , menus..) 이 파트들을 만약 하나하나 작성하였다면 공통적인 부분임에도 불구하고 수정사항이 있을 때마다 전부 수정해야 할 것이다 이때 타임리프의 템플릿 레이아웃 기능을 사용하면 매우 효율적으로 처리할 수 있다 템플릿 레이아웃을 알아보기 전에 그 안에 더 작은 개념인 템플릿 조각을 먼저 살펴보겠다 Thymeleaf Template Fragments 우선 공통적으로 들어갈 footer가 있다고 가정하고 footer의 내용을 아래와 같이 작성하였다 footer 내용 parameter 내용 본문이 될 main html에서 어떻게 사용하는지 살펴보자 (생략) 부분 포함 insert 부분 포함 replace..
타임리프는 자바스크립트를 더욱 편리하게 사용할 수 있도록 자바스크립트 인라인 기능을 제공한다 구체적으로 어떠한 기능들을 제공하는지 살펴보자 자바스크립트 인라인 기능을 사용하려면 아래와 같이 작성하면 된다 예시를 위하여 서버 쪽에서 아래와 같이 데이터를 보냈다고 가정해보자 public String javascriptInline(Model model) { model.addAttribute ("user", new UserDTO("userA", 10)); //(username, age) } Text Inlining (텍스트 렌더링) 자바스크립트에서 변수값을 타임리프 변수로 대입할 때 자주 나는 오류가 특히 문자열에서 따옴표를 사용하지 않아서이다 또한 이를 알고 있다고 하더라도 매번 따옴표를 더하기에는 너무 번거..
HTML의 태그가 아닌 오직 타임 리프만이 제공하는 유일한 자체 태그인 Block tag에 대해 살펴보고자 한다 Synthetic th:block 타임리프가 블록태그를 만든 이유는 주로 반복문에서 발생하는 문제점 때문인데 예를 들어 아래와 같이 두 개의 div 태그를 반복문으로 같이 돌리고 싶다면 매우 난감한 상황이 온다 username age username&age 이때 th:block 말 그대로 하나의 블록 처리를 하여 반복문을 돌리면 굉장히 간단하게 해결이 된다 username age username&age th:block은 렌더링 될 때 사라지며 웹브라우저에는 본래 의도하던 두 개의 태그의 반복문 결과만 남게 된다 더보기 개인 학습을 위해 작성되는 글입니다. 제가 잘못 알고 있는 점에 대한 지적 ..
뷰 템플릿 엔진인 타임리프에서 지원하는 주석과 타임리프가 이 주석들을 어떻게 처리하는지 살펴보고자 한다 타임리프에서 사용할 수 있는 주석은 표준 HTML 주석을 포함하여 총 3가지의 주석을 지원한다 Standard HTML Comments (표준 HTML 주석) 가장 기본적인 표준 HTML 주석의 경우 타임리프가 렌더링을 하지 않고 그대로 남겨둔다 (페이지 소스코드에서 확인 가능) Thymeleaf Parser-Level Comment Blocks(타임리프 파서 주석) 타임리프 파서 주석은 타임리프의 진짜 주석이다, 렌더링 할 때 주석 부분을 제거한다 (페이지 소스코드에서 확인 불가능) Thymeleaf Prototype-Only Comment Blocks(타임리프 프로토타입 주석) 조금 특이한 프로토타..
타임리프의 조건식에 대해 살펴보겠다 타임리프가 제공하는 조건식은 대략 아래와 같다 • if : 자바의 if와 같음 해당 값이 맞으면 true 아니면 false • unless : if의 반대 • switch : 자바의 switch와 같이 맞는 case가 있으면 치환한다 Simple Conditionals : if & unless 타임리프 같은 경우 해당 조건이 맞지 않으면 태그 자체를 렌더링 하지 않는다 즉 아래의 if 혹은 unless의 결과가 false가 나올 시 해당 태그 자체가 렌더링 되지 않고 사라진다 (생략) count username age userCount username age (생략) Switch Statements 자바의 Switch문처럼 해당 case값이 있으면 그 값이 렌더링되며 ..
(참고: Spring Boot를 기준으로 작성된 글입니다) 타임리프에서 다양한 객체 값들을 바인딩하는 방법들을 정리해보고자 한다 아래와 같이 객체를 생성하였다, 이 객체를 다양한 방식으로 전송하여 타임리프에서 어떻게 꺼내볼 수 있는지 방법별로 살펴보자 @Data public class UserDTO { private String name; private int age; } Object (객체) - 서버 @Controller public class ExampleController { @GetMapping("/objects") public String objBinding(Model model) { UserDTO userDTO = new UserDTO(); userDTO.setName("userA"); use..
- Total
- Today
- Yesterday
- @ExceptionHandlere
- 쿠키
- DTO와 VO의 차이
- 제이쿼리 인접 관계 선택자
- 제이쿼리 직접 선택자
- maenco
- 제이쿼리란
- ExceptionHandlerExceptionResolver
- http
- Spring TypeConverter
- spring
- application/x-www-form-urlencoded
- OOP
- @ResponseStatus
- 맨코
- uri
- Spring MVC
- jQuery 직접 선택자
- ResponseStatusExeceptionResolver
- 제이쿼리 기본 선택자
- Session
- 캐시
- 제이쿼리 위치탐색선택자
- cookie
- 제이쿼리 탐색선택자
- Spring API Error
- Spring Container
- DefaultHandlerExceptionResolver
- Cache
- 세션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |