[Thymeleaf] 타임리프와 스프링의 통합 4 - 멀티 체크박스
·
Spring/Thymeleaf
지난번 단일 체크박스를 응용하여 멀티 체크박스도 만들어보자.컨트롤러 수정 - @ModelAttribute 사용@ModelAttribute("regions")public Map regions() { Map regions = new LinkedHashMap(); regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JEJU", "제주"); return regions;}해당 코드는 등록, 상세, 수정 등에서도 등장해야하는 데이터들인데, 늘 모든 코드에서 중복해서 작성해야할까?스프링에선 해당 귀찮음을 해결하기 위해 @ModelAttribute의 기능을 지원한다.해당 에노테이션이 있는 컨트롤러가 호출될 때, 항상 모델..
[Thymeleaf] 타임리프와 스프링의 통합 3 - 단일 체크박스
·
Spring/Thymeleaf
기존에 요구 사항을 반영하기 위해 체크 박스를 추가해보자.단일 체크박스 추가하기@PostMapping("/add")public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes) { log.info("item.open={}", item.getOpen()); log.info("item.regions={}", item.getRegions()); Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("..
[Thymeleaf] 타임리프와 스프링의 통합 2 - 담장자님 이것 좀 추가해주세요 ~
·
Spring/Thymeleaf
만약 이전 프로젝트에서 요구 사항이 추가되었다고 가정하자.이번 포스팅에선 단순하게 요구 사항이 추가 되었을 때, 어떤 식으로 확장할지 아이디어만 간단하게 내보자. [Spring] MVC 패턴 웹 페이지 9(完) - RedirectAttributes 적용리다이렉트까지는 완벽하게 적용했다.이제 사용자가 상품을 저장하면 "저장 되었습니다" 라는 메시지를 보여주도록 사용자 친화적 수정을 해보도록 하겠다 ! [Spring] MVC 패턴 웹 페이지 8 - PRG 패bdisappointed.tistory.com안녕하세요 담당자님, 이거 이거 추가좀 부탁드릴게요..판매 여부-판매 오픈 여부-체크 박스로 선택할 수 있다.등록 지역-서울, 부산, 제주-체크 박스로 다중 선택할 수 있다.상품 종류-도서, 식품, 기타-라디오..
[Thymeleaf] 타임리프와 스프링의 통합 1 - 입력 폼 처리하기
·
Spring/Thymeleaf
스프링와 통합을 위해 타임리프에서 다양한 편의 기능을 제공한다.타임리프는 그러한 기능으로 스프링과 밀접하게 통합될 수 있다. [Spring] MVC 패턴 웹 페이지 1 - 요구사항 분석상품을 관리할 수 있는 간단한 서비스를 구현 해보자 !이번에는 요구 사항을 분석하고, 어떤 흐름으로 개발할지를 먼저 살펴 본다.요구 사항 분석상품 도메인 모델상품은 다음 필드를 가져야 한bdisappointed.tistory.com이전에 진행했던 상품관리 프로젝트에서 이러한 기능을 추가하여 리팩토링해보자.입력 폼 처리하기타임리프에서는 다음과 같은 기능을 제공한다th:object : 커맨드 객체 지정*{..} : 선택 변수 식 -> th:object 애서 선택한 객체에 접근th:field : HTML 태그의 id, name,..
[Thymeleaf] 타임리프 기본 기능 4 - 템플릿 조각과 레이아웃
·
Spring/Thymeleaf
웹 페이지를 개발할 때 공통 영역이 상당 존재한다.만약 이런 공통 부분에 문제가 생겨서 수정을 해야한다면 모든 페이지에 다 수정해야할까? (참고로 메서드로 뽑아도 어차피 메서드를 호출 하는 부분을 모두 수정해야한다.)이런 문제점을 해결하기 위해 타임리프에서 템플릿 조각과 레이아웃 기능을 제공한다.컨트롤러부터 만듭시다package hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMap..
[Thymeleaf] 타임리프 기본 기능 3 - 자바 스크립트 인라인
·
Spring/Thymeleaf
지난번에 이어 3번째 기능, 자바 스크립트 인라인 기능을 알아보자 !컨트롤러package hello.thymeleaf.basic;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta.servlet.http.HttpSession;import lombok.Data;import org.springframework.stereotype.Component;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.ann..
[Thymeleaf] 타임리프 기본 기능 2 - 속성 값 설정, 반복, 조건부 평가, 주석, 블록
·
Spring/Thymeleaf
이전 글에 이어 타임리프의 속성 값, 반복, 조건부 평가, 주석 및 블록에 대해 알아보자흐름을 따라가기 위한 컨트롤러package hello.thymeleaf.basic;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta.servlet.http.HttpSession;import lombok.Data;import org.springframework.stereotype.Component;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.sprin..
[Thymeleaf] 타임리프 기본 기능 1 - 텍스트 , 표준 표현식 구문
·
Spring/Thymeleaf
저번에 타임 리프가 뭔지 알아 봤으니까, 이번에는 타임리프의 기능에 대해서 알아보자 !타임리프는 HTML을 기반으로 하고 있기 때문에, HTML에 기능이 몇개 정도 추가 되었다고 생각하면 된다.참고로 타임리프를 사용하기 위해서는 태그가 필요한 점을 까먹지 말자.흐름을 찾아가기 위한 컨트롤러package hello.thymeleaf.basic;import jakarta.servlet.http.HttpServletRequest;import jakarta.servlet.http.HttpServletResponse;import jakarta.servlet.http.HttpSession;import lombok.Data;import org.springframework.stereotype.Component;imp..
[Thymeleaf] Thymeleaf를 소개합니다 !
·
Spring/Thymeleaf
타임리프가 뭔가요?타임 리프는 스프링과 죽이 착착 잘 맞는 뷰 템플릿 엔진이다.템플릿 엔진의 대표적인 예시로 JSP 를 예로 들 수 있는데, 요새는 JSP는 거의 상장 되고, 타임리프가 유행이다.백엔드 개발자로써 HTML과 자바 스크립트를 통해 화면 구성도 하고 서버 작업도 할 수 있으면 좋겠지만, 화면구성 등은 프론트엔드 개발자에게 맡기고, 아주 기본적인 HTML을 가지고 화면을 먼저 구성하여 테스트 할 수 있도록 뷰를 렌더링 해주는 도구를 템플릿 엔진이라고 한다.그래서 아무리 백엔드 서버 개발자여도, 하나 정도의 템플릿 엔진을 사용할 줄 알아야 데이터의 흐름이나 URL의 흐름을 정확하게 파악 할 수 있다. 그래서 왜 타임리프인가요?기본적으로 타임리프는 스프링과 통합 지원 되기 때문에, 스프링과 조합이..