검색 본문
ju5710.tistory.com 쥰's 블로그 IT 수업 22주차 (156) Thymeleaf < 실습하기 > jsp와 동시에 타임리프를 사용하기 위해 07 프로젝트 복사해서 08_THYMELEAF 프로젝트 만든다. start.spring.io에서 Thymeleaf 받아 explorer 눌러서 코드만 복사해준다. 그리고 build.gradle에 붙여넣기해준다. 코끼리 아이콘 눌러서 업데이트해준다. 다 했으면 resources 밑에 있는 application.properties의 맨 밑에서 #THYMELEAF를 작성해준다. /templates 안의 /th 주소를 쓰겠다는 뜻이다. resources 안에 templates 디렉토리가 없다면 만들 ● url 표현하기 이번에는 a태그로 경로 정보를 표현해본다. test1.html에서 a태그를 작성해준다. 실행시켜 개발자 도구를 살펴보면 "@{/readMemo(id=${memo.id})}"가 "/readMemo?id=1"로 나타는 것을 확인 할 수 있다. 두번째 방법은 url 로 나타내는 방법이다. 확인해보면 "@{/readMemo(id=${memo.id})}"이 "/read/Memo/1" 로 표현 되는 것을 확인 할 수 있다. 텍스트까지 나타내고 싶으면 이렇게 작성하면 된다. ● 메인에 헤더, 푸터 연결하기 이번에는 test2.html을 만들고 div태그 안에 메인 태그를 넣어준다. 그리고 th 디렉토리 밑에 fragments 디렉토리를 만들고 그 안에 footer와 header.html을 만들어 준다. header.html footer.html 그리고 th로 경로를 잡아주고 main에 header와 footer를 연결시켜준다. test2.html footer.html header.html 실행하면 test2 페이지에 헤더, 메인, 푸터 영역이 모두 나오게 된다. 37 jsp와 동시에 타임리프를 사용하기 위해 07 프로젝트 복사해서 08_THYMELEAF 프로젝트 만든다. start.spring.io에서 Thymeleaf 받아 explorer 눌러서 코드만 복사해준다. 그리고 build.gradle에 붙여넣기해준다. 코끼리 아이콘 눌러서 업데이트해준다. 다 했으면 resources 밑에 있는 application.properties의 맨 밑에서 #THYMELEAF를 작성해준다. /templates 안의 /th 주소를 쓰겠다는 뜻이다. resources 안에 templates 디렉토리가 없다면 만들 2024.05.20 블로그 검색 더보기 lee-dev-log.tistory.com geonwoo 타임리프(ThymeLeaf ) 속성변경 아래 코드와 같이 지금까지 타임리프를 통해 기존의 정적인 HTML코드는 바꾸지 않으면서 서버 사이드 렌더링 될 때 HTML코드를 임의로 변경해왔었다. <span th:text="대체되는 span">기존 span</span> HTML의 문자만 바꾸는 것이 아니라 태그 내부에 있는 속성 또한 타임리프를 통해 변경할 수 있다. 아래 코드는 input태그의 'name'속성을 th:name="userA" 코드를 통해 userA라는 name속성의 값을 부여한다. <h3>속성 변경</h3> <input type="text" name="name" 속성추가 속성 변경뿐만아니라 임의로 속성을 추가할수도 있다. <h3>속성 추가</h3> <input type="text" class="text" th:attrappend="class=' add-class'"><br> <input type="text" class="text" th:attrprepend="class='add-class'"><br> <input type="text" class="text" th:classappend="add-class"><br> 속성 변경에는 크게 3가지 방법이 있으며 아래의 실행결과를 통해 어떻게 사용되는지 알 checked처리 HTML은 checked의 속성 값에 'false','true'에 구분할 것 없이 checked라는 속성이 있기만하면 값에 상관없이 checked를 체크해서 보여주었다. <h3>checked 처리</h3> HTML checked 속성 없음<input type="checkbox" name="active" /><br> HTML checked 값없이 속성만 있음<input type="checkbox" name="active" checked/><br> HTML checked false<input type="checkbox" name="ac each에 내장되어있는 Stat객체 each를 사용할 때 현재 반복문에 대한 상태를 알 수 있는 객체(Stat)를 제공한다. Stat객체를 사용하기위해서는 아래 코드와 같이 userStat로 변수명을 맞춰서 사용하거나 맞추지 않을 경우에는 따로 변수명을 설정해주어야한다. //Stat변수명을 따로 선언해주기 <tr th:each="user, userStat : ${users}"> <table border="1"> <tr> <th>count</th> <th>username</th> <th>age</th> < HTML표준 주석 기존에 HTML에서 사용되던 주석으로 이 때 브라우저 소스보기를 통해 HTML주석을 확인할 수 있다. <h3>HTML표준 주석</h3> <!--<span th:text="${data}">HTML</span>--> 실행결과 타임리프 파서 주석 타임리프에서 가장 많이 사용되는 주석으로 다음과 같이 주석처리하면 서비스를 이용하는 클라이언트에게도 보이지 않게된다. <h3>타임리프 파서 주석</h3> <!--/*--> <span th:text="${data}">HTML</span> <!--*/--> //한 줄로도 처리 가능 <!--/* [[${data}]] */--> 실행결과 타임리프 프로토타입 주석 잘 사용되지 않는 주석이지만 프로토타입 주석은 타임리프를 통해 렌더링 할 경우 ${data}의 값이 정상적으로 처리되는 특이한 주석이다. HTML파일로 그대로 열 경우에는 주석처리된 것을 알 수 있다. <h3>타임리프 프로토타입 주석</h3> <!--/*/ <span th:text="${data}">HTML</span> /*/--> 렌더링 결과 블록 <th:block> 태그는 타임리프에서 유일한 자체 태그로 아래 코드에서 알 수 있듯이 HTML에는 th:block이라는 태그가 존재하지 않는다. 때문에 타임리프에 장점인 '네츄럴 템플 Fragment - insert 먼저 Controller에서는 fragmentMain View를 반환한다. @Controller @RequestMapping("/template") public class TemplateController { @GetMapping("fragment") public String template() { return "template/fragment/fragmentMain"; } } 컨트롤러에서 반환하는 fragmentMain View이다. 즉, 이 페이지가 브라우저에서 보여지게 된다. fragmen Fragment - replace 위에서 다루어본 insert는 th:fragemnt코드가 포함된 <footer>태그를 통째로 호출한 곳에 삽입하였다면 replace는 말그대로 호출한 곳의 태그를 대체해버린다. //fragmentMain.html <body> <div th:replace="~{template/fragment/footer :: copy}"></div> //~{}는 생략가능 </body> //footer.html <footer th:fragment="copy"> footer.html의 푸터 영역 </footer> 실행결과 <footer> Fragment - 파라미터 사용 //footer.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <footer th:fragment="copyParam(param1, param2)"> <p>파라미터 자리 입니다.</p> <p th:text="${param1}"></p> <p th:text="${param2}"></p> </footer> </body 12 //footer.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <footer th:fragment="copyParam(param1, param2)"> <p>파라미터 자리 입니다.</p> <p th:text="${param1}"></p> <p th:text="${param2}"></p> </footer> </body 타임리프 thymeleaf 2024.04.20 타임리프(ThymeLeaf ) - 2 jheaon.tistory.com JHeaon 개발일지 Thymeleaf 사용 방법 사용예시를 들기 위해 HelloController와 templates폴더 아래 hello.html 파일을 만들어 작동시켜 보았다. 주의 : 스프링부트는 템플릿 의존성 라이브러리를 추가하게 되면 자동적으로 src/main/resources/templates 경로를 기본 경로로 인식하기 때문에, 이를 인지하고 html 파일을 만들어야한다. HelloController.java hello.html 파일에 값을 넘겨주기 위해 Model 파라미터를 받은 다음 addAtttribute 속성을 통해 모델에 값을 넣어 반환한다. return 값에 작동 방식 스프링 부트에서 템플릿 엔진은 위와 같이 작동한다. 클라이언트에서 요청이 들어온다. 내장 톰켓 서버를 거쳐, helloController에서 요청을 처리한다. 해당 과정에서 return 값으로 넘어온 html 파일을 찾은 뒤, 템플릿 엔진 처리를 거친 결과 값을 클라이언트에게 반환한다. 하지만 Controller에서 다룰 때, @ResponseBody 라는 에너테이션이 붙어있다면, return 값으로 html 파일을 찾는 것이 아닌, 반환 값으로 객체를 넘긴다면 Json, 그 외에는 String문자열로 반환하니 이를 참고하도록 하 4 사용예시를 들기 위해 HelloController와 templates폴더 아래 hello.html 파일을 만들어 작동시켜 보았다. 주의 : 스프링부트는 템플릿 의존성 라이브러리를 추가하게 되면 자동적으로 src/main/resources/templates 경로를 기본 경로로 인식하기 때문에, 이를 인지하고 html 파일을 만들어야한다. HelloController.java hello.html 파일에 값을 넘겨주기 위해 Model 파라미터를 받은 다음 addAtttribute 속성을 통해 모델에 값을 넣어 반환한다. return 값에 spring thymeleaf 2024.05.21 123okk2.tistory.com 저장소 [Thymeleaf] Lang 설정을 통한 다국어 페이지 제공 15 사용한 텍스트 출력 자바 코드 내에서 여러 클래스에서 동시에 사용하는 변수는 static으로 만들거나 혹은 enum으로 만들어 사용하고 관리한다. THYMELEAF 개발 시에도 이렇게 여러 페이지에서 동일하게 사용되는 고정된 문구는 (등록되었습니다 등) 한 곳에 모아놓고 사용할 수 있다. 그러면 만약 안내문구가 변경될... 2024.05.29 e-7-e.tistory.com e7e boot Thymeleaf(타임리프) 사용 8 좀 더 일찍 나왔으면 좀 더 많이 흥행했을 서버사이드 템플릿엔진 타임리프(thymeleaf) !! RestFul이 대세이긴 하지만 그 나름 프로젝트 규모나 성격,고객의 요청 상황에 따라서는 너무도 훌륭한 선택이 될 수 있을 거시당. RestFul과 Mixed는 어떨깡? 확장자를 html로 사용하기에 개인적으론 너무도 미친 듯 맘에 든당... 타임리프 스프링 부트 Thymeleaf Spring Boot3 boot3 2024.04.20 domountain.tistory.com 산에는 꽃이 피네 벼룩이자리 Thymeleaf sandwort 8 산과바다 벼룩이자리 Thymeleaf sandwort 2024. 4. 19. 담음 * 벼룩나물과 벼룩이자리 비교 구분 암술대 털 꽃잎 벼룩나물(별꽃속) 2~3개 없다. 5장이 깊게 갈라져 10장으로 보임 벼룩이자리 3개 있다. 갈라지지 않아 5장 이고 꽃받침이 꽃잎보다 길다. * 벼룩이자리와 개미자리의 꽃이 같아 보이는데 벼룩이자리는 잎이... 4월 흰색 삭과 석죽과 벼룩이자리 벼룩이자리속 2024.04.19 통합웹 더보기
서비스 안내 스토리의 글을 대상으로 검색결과를 제공합니다. 자세히보기 heesu105.tistory.com 나누스 개발일지 Day 77 (Thymeleaf) 3 #Thymeleaf - 서버 사이드 렌더링: Thymeleaf는 서버 측에서 템플릿을 처리하고 동적으로 데이터를 바인딩하여 완전한 HTML 페이지를 생성 - 자연스러운 템플릿: Thymeleaf 템플릿은 표준 HTML로 작성되므로 웹 디자이너와 개발자 간의 협업이 용이 - 데이터 바인딩: Thymeleaf는 모델 데이터를 템플릿에 쉽게 바인딩할... 중앙정보기술인재개발원 중앙정보처리 2024.05.17 티스토리 검색 더보기 story.kakao.com 김도영 김도영 - 카카오스토리 국립암센터, 서울대학교 등의 공공기관 시스템 구축 업무를 진행하였습니다. 자바(Spring Boot) , thymeleaf, 오라클, MariaDB, MySQL, Nodejs, React, VueJS 등 사용 경력이 20년 이상이며, Spring Cloud... 2024.03.25 카카오스토리 검색 더보기
서비스 안내 Kakao가 운영하는 책 서비스 입니다. 다른 사이트 더보기 Taming Thymeleaf 도서 66,970원 Taming Thymeleaf 저자 Deblauwe Wim 출간 2021.5.10. 도서 54,360원 실전 스프링 부트 웹 개발 Thymeleaf + JPA + Oracle 저자 향단코드 출간 2022.8.29. e북 9,000원 실전 스프링 부트 웹 개발 Thymeleaf + JPA + MySQL 저자 향단코드 출간 2020.4.13. e북 10,000원 실전 스프링 부트 웹 개발 Thymeleaf + JPA + MySQL 개정판 저자 향단코드 출간 2021.3.16. e북 9,000원 (주)카카오는 상품판매의 당사자가 아닙니다.법적고지 안내 (주)카카오는 통신판매중개자로서 통신판매의 당사자가 아니며 상품의 주문 배송 및 환불 등과 관련한 의무와 책임은 각 판매자에게 있습니다.
Thymeleaf www.thymeleaf.org/ 웹수집 eblo eblo.tistory.com/ 신청자 작성 티스토리 java, spring, thymeleaf, it, aggrid, vuejs, 개발자 하이의 개발 노트 blog.naver.com/kimtu0206 네이버 블로그 들러주세요~ 기술 스택 Java, JavaScript Spring Framework, Jsp Spring Boot, Thymeleaf, Jpa OracleDB