Thymeleaf 활용

박정호·2024년 10월 17일

Spring

목록 보기
4/4

1. spring boot의 static 폴더와 templates 폴더의 차이

  • templates
    • thymeleaf의 파일을 두는 곳
  • static
    • 보통 css, js를 둔다. 정적 페이지
    • 정적 리소스에서 해당 파일을 탐색기를 통해 직접 열어도 동작하는 것을 확인할 수 있다.

2. @PostConstruct

  • 객체의 초기화 부분
  • 객체가 생성된 후 별도의 초기화 작업을 위해 실행하는 메소드를 선언한다.
  • @PostConstruct 어노테이션을 설정해 놓은 init 메서드는 was가 띄워질 때 실행된다.

3. @PreDestroy

  • 마지막 소멸 단계
  • 스프링 컨테이너에서 객체(빈)를 제거 하기 전에 해야할 작업이 있다면 메소드 위에 사용하는 어노테이션.

4. th:action

  • 같은 url로 전송 시, 전송 방법만 달라지는 경우는 url을 쓰지 않아도 된다.
  • url이 같다는 것을 강조하기 위해 여기서는 쓰지 않는다.
	<form action="item.html" th:action method="post">

5. @ModelAttribute

5-1. @ModelAttribute - 요청 파라미터를 처리

  • @ModelAttribute는 Item 객체를 생성하고, 요청 파라미터의 값을 프로퍼티 접근법(set...) 으로 입력해준다.

5-2. @ModelAttribute - Model 추가

  • @ModelAttribute는 중요한 한 가지 기능이 더 있는데, 바로 모델에 @ModelAttribute로 지정한 객체를 자동으로 넣어주는 기능이다.
    • 주의
      : @ModelAttribute("key") Item item
      model.addAttribute("key", item);

5-3. @ModelAttribute - 이름 생략

  • @ModelAttribute의 이름을 생략하면 모델에 저장될 때 클래스명을 사용한다. 이 때, 클래스의 첫 글자만 소문자로 변경해서 등록한다.

    예) @ModelAttribute Item item -> 모델의 key의 이름 = item -> model.addAttribute("item",item);

6. forward, redirect

  • 웹 브라우저의 새로 고침은 마지막에 서버에 전송한 데이터를 다시 전송한다.
  • 그래서 내용은 같고, ID만 다른 상품 데이터가 계속 쌓이게 된다.

7. RedirectAttributes

  • redirect 시 사용되는 여러 속성들을 알아보자.
  • RedirectAttributes를 사용하면 URL 인코딩, pathVariable, 쿼리 파라미터까지 처리해준다.
 	@PostMapping("/add")
	public String saveV7(Item item, RedirectAttributes redirectAttributes) {
		Item savedItem = itemRepository.save(item);
		redirectAttributes.addAttribute("itemId",savedItem.getId());
		redirectAttributes.addAttribute("status","true");
		return "redirect:/basic/items/{itemId}";
		// 결과 URL -> http://localhost:9090/basic/items/3?status=true
	}
  • redirect:/basic/items/{itemId}
    -> pathVariable 바인딩 : {itemId}
    -> 나머지는 쿼리 파라미터로 처리
    : ?status=true

0개의 댓글