# 비고 강의의 기본 세팅은 스프링 부트 2.4.1 이지만, 현재 스프링 부트 이니셜라이저는 2.7.15 버전부터 서비스되고 있기 때문에, 인위적으로 바꾸는 과정이 필요했다. 초기 : 2.7.15 build.gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.15' id 'io.spring.dependency-management' version '1.0.15.RELEASE' } group = 'inflearn' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '1.8' } configurations { compileOnly { extendsFrom annotationProcesso..

셀렉트 박스 - 셀렉트 박스는 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. - 이번시간에는 셀렉트 박스를 자바 객체를 활용해서 개발한다. 배송 방식 빠른 배송 일반 배송 느린 배송 셀렉트 박스로 하나만 선택할 수 있다. FormItemController 에 코드 추가 /** * 모델에 배송 코드 목록을 추가하는 메서드. * * @return 배송 코드 목록을 포함하는 List */ @ModelAttribute("deliveryCodes") public List deliveryCodes() { // 배송 코드 목록을 생성. List deliveryCodes = new ArrayList(); deliveryCodes.add(new DeliveryCode("FAST", "빠른 배송")); delive..

라디오 버튼 라디오 버튼은 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. 라디오 버튼을 자바 ENUM을 활용해서 개발한다. 상품 종류 도서, 식품, 기타 라디오 버튼으로 하나만 선택할 수 있다. FormItemController - 추가 // @ModelAttribute 어노테이션이 적용된 메서드 // 이 메서드는 "itemTypes"라는 이름으로 모델에 데이터를 추가한다. @ModelAttribute("itemTypes") public ItemType[] itemTypes() { // ItemType 열거형(enum)의 모든 값을 배열로 반환. // ItemType.values() 메서드는 enum에서 정의한 모든 열거 상수를 배열로 제공. return ItemType.values(); } it..

체크 박스 - 멀티 체크 박스를 멀티로 사용해서, 하나 이상을 체크할 수 있도록. 등록 지역 서울, 부산, 제주 체크 박스로 다중 선택할 수 있다. 등록 폼 수정 @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); Map regions = new LinkedHashMap(); // HashMap 쓰면 순서가 보장x regions.put("SEOUL", "서울"); regions.put("BUSAN", "부산"); regions.put("JEJU", "제주"); model.addAttribute("regions", regions); return "form/addForm"; } Map r..

체크 박스 - 단일 02 타임리프 개발할 때 마다 이렇게 히든 필드를 추가하는 것은 상당히 번거롭다. 타임리프가 제공하는 폼 기능을 사용하면 이런 부분을 자동으로 처리할 수 있다. 체크 박스 코드 추가 addForm.html 판매 여부 판매 오픈 이렇게 쓰거나 판매 여부 판매 오픈 이렇게 쓴다. 실행해서 페이지 소스 보기 눌러보면 타임리프 체크 박스 HTML 생성 결과 item.open도 true로 나온다. 반대로 체크 하지 않고 등록해서 확인해보면 item.open = false 나오는 것을 확인할 수 있음. 상품 상세에 적용 item.html 체크하고 등록한 경우 체크 없이 등록한 경우 주의 : item.html 에는 th:object 를 사용하지 않았기 때문에 th:field 부분에 ${item.o..

체크 박스 - 단일1 단순 HTML 체크 박스 resources/templates/form/addForm.html 추가 판매 여부 판매 오픈 resources/templates/form/addForm.html 전체 코드 상품 등록 폼 상품명 가격 수량 판매 여부 판매 오픈 상품 등록 취소 상품이 등록되는 곳에 다음과 같이 로그를 남겨서 값이 잘 넘어오는지 확인 FormItemController 추가 @Slf4j 클래스 레벨에 추가 @GetMapping("/add") public String addForm(@ModelAttribute Item item, Model model) { // 추가 // 로깅 추가 log.info("item.open={}", item.getOpen()); model.addAttri..

요구사항 추가 타임리프를 사용해서 폼에서 체크박스, 라디오 버튼, 셀렉트 박스를 편리하게 사용하는 방법을 학습하기 위한 작업 내용 이미지 예시 ItemType public enum ItemType { BOOK("도서"), FOOD("음식"), ETC("기타"); private final String description; // 설명 ItemType(String description) { // 생성자 this.description = description; } public String getDescription() { return description; } } DeliveryCode /** * FAST : 빠른 배송 * NORMAL : 일반 배송 * SLOW : 느린 배송 */ @Data @AllArgsC..
예제 공부를 하다가, private boolean open; 과 private Boolean open; 이 나와서 chat GPT 를 통해 차이점을 찾아보았다. 관련된 개념적 내용은 다음과 같다. private boolean open; vs private Boolean open; Java에서 서로 다른 데이터 유형을 나타낸다. 1. private boolean open; 이것은 기본 데이터 유형인 boolean을 사용하는 변수를 선언한다. boolean은 두 가지 값 중 하나인 true 또는 false만을 가질 수 있는 원시 데이터 유형 따라서 open 변수는 true 또는 false 중 하나의 값을 가질 수 있다. 2. private Boolean open; 이것은 래퍼 클래스인 Boolean을 사용하..