[Spring] 메시지와 국제화 - 어떻게 국제화가 자동으로 일어날까요?
·
Spring/MVC
메시지가 뭐고 왜 필요하냐면요예를 들어 이런 필드가 있다고 할 때, 상품명 이라는 라벨을 모두 상품 이름으로 변경해달라고 하면 어떻게 할 것인가?모든 코드를 까서 ctrl F 로 라벨을 찾아 수정하는 방법이 가장 단순한 방법일 것이다.근데 만약 수정해야하는 파일의 개수가 1000개면 하루종일 그것만 하고 있을 것인가? 기존 코드는 다음과 같이 상품명 이라는 텍스트가 하드코딩 되어 있기 때문에, 모두 까서 수정하기 힘들다. 상품명 그래서 이러한 메시지를 Key - value 형태로 저장해두고 관리하도록 하는 기능을 메시지 기능이라고 한다.hello=안녕hello.name=안녕 {0}label.item=상품label.item.id=상품 IDlabel.item.itemName=상품명label.it..
[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..