BackEnd/Thymeleaf 17

셀렉트 박스

여러개의 선택지중에 하나를 선택할 수 있도록 하기 위해서 셀렉트 박스를 활용할 수 있다. 상품의 배송방식을 고르는 것을 셀렉트 박스로 구현해보자. package hello.itemservice.domain.item;import lombok.AllArgsConstructor;import lombok.Data;/** * FAST : 빠른배송 * NORMAL : 일반배송 * SLOW : 느린배송 */@Data@AllArgsConstructorpublic class DeliveryCode { private String code; private String displayName;}  @ModelAttribute("deliveryCodes")public List deliveryCodes() { Li..

BackEnd/Thymeleaf 2024.07.23

라디오 버튼

라디오 버튼이란 여러 선택지 중 하나의 선택지를 선택할때 사용한다. (라디오 버튼은 선택을 무조건 하나 해줘야한다.) 라디오 버튼을 이용하여 상품의 종류가 무엇인지를 선택하는 코드를 작성해보자.  package hello.itemservice.domain.item;public enum ItemType { BOOK("도서"), FOOD("음식"), ETC("기타"); private final String description; ItemType(String description) { this.description = description; } public String getDescription() { return description; }}   ite..

BackEnd/Thymeleaf 2024.07.23

체크 박스 - 멀티

체크박스를 멀티로 사용하여 하나 이상을 체크할 수 있도록 하는 방법에 대해서 공부하였다. 우선 FormItemController에서 지역들을 담고있는 Map을 모델에 넘겨주는 작업을 해줘야한다.@ModelAttribute("regions")public Map regions(){ Map regions = new LinkedHashMap(); regions.put("SEOUL","서울"); regions.put("BUSAN","부산"); regions.put("JEJU","제주"); return regions;}@ModelAttribute를 이용하여 해당 컨트롤러를 요청할때 regions에서 반환한 값이 모델에 자동으로 담기도록 해준다.   등록 지역 ..

BackEnd/Thymeleaf 2024.07.23

체크 박스 - 단일(1)

체크박스 사용 방법에 대해서 공부 해보았다.  우선 상품 판매 여부를 체크할 수 있는 체크 박스를 addForm.html에 추가하였다.판매 여부 판매 오픈   로그를 남겨서 실행후 값이 잘 넘어오는지를 확인해보면 문제점을 확인할 수 있다. 체크를 하지 않으면 null값이 넘어오는데, 이를 수정할 수 있는 방법에 대해서 공부하였다.FormItemController : item.open=true //체크 박스를 선택하는 경우FormItemController : item.open=null //체크 박스를 선택하지 않는 경우  체크 해제를 인식하기 위해서 약간의 트릭을 사용하는데판매 여부 판매 오픈 ..

BackEnd/Thymeleaf 2024.07.22

타임리프 - 템플릿 레이아웃

코드 조각을 레이아웃에 넘겨서 사용하는 방법에 대해서 공부해 보았다.   메인 컨텐츠  메인 타이틀이 전달한 부분으로 교체되었고 추가 부분에 들이 포함되었다. 위에서 다룬 개념을 메인 페이지 컨텐츠 메인 페이지 포함 내용  레이아웃 H1 레이아웃 컨텐츠 레이아웃 푸터    layoutExtendMain.html이 현재 페이지인데, 자체를 th:replace를 이용해서 변경하는 것을 확인 할 수 있다.결국 laoutFile.html에 필요한 내용을 전달하면서 자체를 layoutFile.html로 변경한다.

BackEnd/Thymeleaf 2024.07.21

타임리프 - 템플릿 조각

템플릿 조각을 이용해 공통 영역을 효율적으로 처리할 수 있다. package hello.thymeleaf.basic;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/template")public class TemplateController { @GetMapping("/fragment") public String template(){ return "template/fragment/f..

BackEnd/Thymeleaf 2024.07.21