고민보다Go

(Thymeleaf 기본 문법) 타임리프 text 속성 본문

타임리프

(Thymeleaf 기본 문법) 타임리프 text 속성

나를 조각해나가자 2024. 4. 4. 10:01

기본사용방법

html에 수정사항이 생기면 매번 서버를 내렸다 올려야하는 불편함이 있다 (jsp는 새로고침만 하면 됐었는데)

그래서 Spring Boot Dev Tools에서 아래와 같은 의존성을 추가해주면 해결이 된다!

(컨트롤러가 변경되고 할때 내부에서 스탙 안해도 되고, 자바스크립트 html css 등등을 고치고 새로고침 안해도 되는 기능을 제공한다.)

 

 

https://mvnrepository.com/

에 가서 Spring Boot Dev Tools을 검색하면 나온다.

버전은 스프링부트가 알아서 맞춰주기때문에 필요없다 (maven의 경우 pom.xml)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
</dependency>

 

이렇게 html 페이지에 namespace가 필요하다

th라는 namespace로 시작하는것

 

 

th:text 텍스트를 출력하는 역할 (태그내의 문자열을 완전히 바꿔줄때)

th:text="${msg}"를 html 태그내에 적어주면, 해당 태그의 내용을 바꿔준다.

 

일단 컨트롤러 작성은 다음과 같이 한다.

@Controller
@RequestMapping("/th")
public class TestController{
	@GetMapping("/text")
    public String basic(Model model){
    	model.addAttribute("msg","thymeleaf이용하기");
        model.addAttribute("data","erp");
        return "basic/text_text";
    }
}

@RequestMapping() -> 공통적으로 쓸 url을 적는다.

@GetMapping()->RequesetMapping과 조합할 나머지 url을 적는다.

return -> 요청할 페이지 즉html파일 경로를 적는다. 기본적으로 타임리프파일 즉 동적파일은 templates아래에 들어가서 찾기 시작하므로 /없이 templates안에서 시작하는 경로를 적으면 된다.(templates>basic폴더>text_text.html) 

 

html파일에서는 다음과 같이 작성한다.

<div>th:text의 사용 => <span th:text="${msg}">test</span></div>

그럼 test라는 문자 대신 msg에 해당하는 값이었던 thymeleaf이용하기가 출력된다.

 

문자열안에서 쓰려면 [[ ]] 대괄호 두개 쓰고 안에 ${ }로 적어주면 된다.

<h2>문자열과 함께 사용하기 : [[${msg}]] </h2>