Spring
스프링 MVC 2 - 정리(타임리프 - 스프링 통합과 폼)
스프링 MVC 2 - 정리(타임리프 - 스프링 통합과 폼)
2022.08.17프로젝트 설정 타임리프 스프링 통합 SpringEL 문법 통합 스프링 빈 호출 지원 편리한 폼 관리를 위한 추가 속성 th:object th:field, th:errors, th:errorclass 폼 컴포넌트 기능 checkbox, radio, button, List 등 입력 폼 처리 단순한 입력 폼에 th:field만 넣어주면, HTML 태그의 id, name, value 속성을 자동으로 처리해준다. 요구사항 추가 체크 박스 - 단일1 체크박스는 체크를 하지 않으면 아무 값도 넘어오지 않게 되서(name도 안넘어옴) 그래서 수정을 하려고 할 때 문제가 될 수 있는데, 타임리프가 checkbox인 경우 th:field를 사용하면 자동으로 히든필드를 추가 해준다. 체크 박스 - 단일2 체크 박스 - 멀티..
스프링 MVC 2 - 셀렉트 박스
스프링 MVC 2 - 셀렉트 박스
2022.08.17셀렉트 박스 셀렉트 박스는 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. 이번시간에는 셀렉트 박스를 자바 객체를 활용해서 개발해보자. 배송 방식 빠른 배송 일반 배송 느린 배송 셀렉트 박스로 하나만 선택할 수 있다. FormItemController - 추가 DeliveryCode라는 자바 객체를 사용하는 방법으로 진행하겠다. DeliveryCode를 등록 폼, 조회, 수정 폼에서 모두 사용하므로 @ModelAttribute의 특별한 사용법을 적용하자. 참고: @ModelAttribute가 있는 deliveryCodes() 메서드는 컨트롤러가 호출 될 때 마다 사용되므로 deliveryCodes 객체도 계속 생성된다. 이런 부분은 미리 생성해두고 재사용하는 것이 더 효율적이다. addForm.ht..
스프링 MVC 2 - 라디오 버튼
스프링 MVC 2 - 라디오 버튼
2022.08.17라디오 버튼 라디오 버튼은 여러 선택지 중에 하나를 선택할 때 사용할 수 있다. 이번 시간에는 라디오 버튼을 자바 ENUM을 활용해서 개발해보자. 상품 종류 도서, 식품, 기타 라디오 버튼으로 하나만 선택할 수 있다. FormItemController - 추가 itemTypes를 등록 폼, 조회, 수정 폼에서 모두 사용하므로 @ModelAttribute의 특별한 사용법을 적용하자. ItemType.values()를 사용하면 해당 ENUM의 모든 정보를 배열로 반환한다. 예) [BOOK, FOOD, ETC] 상품 등록 폼에 기능을 추가해보자. addForm.html - 추가 실행 결과, 폼 전송 로그 추가 실행 로그 체크 박스는 수정시 체크를 해제하면 아무 값도 넘어가지 않기 때문에, 별도의 히든 필드로 ..
스프링 MVC 2 - 체크 박스 - 멀티
스프링 MVC 2 - 체크 박스 - 멀티
2022.08.15체크 박스 - 멀티 체크 박스를 멀티로 사용해서, 하나 이상을 체크할 수 있도록 해보자. 등록 지역 서울, 부산, 제주 체크 박스로 다중 선택할 수 있다. FormItemController - 추가 @ModelAttribute의 특별한 사용법 등록 폼, 상세 화면, 수정 폼에서 모두 서울, 부산, 제주라는 체크 박스를 반복해서 보여주어야 한다. 이렇게 하려면 각각의 컨트롤러에서 model.addAttribute(...)을 사용해서 체크 박스를 구성하는 데이터를 반복해서 넣어주어야 한다. @ModelAttribute는 이렇게 컨트롤러에 있는 별도의 메서드에 적용할 수 있다. 이렇게하면 해당 컨트롤러를 요청할 때 regions에서 반환한 값이 자동으로 모델(model)에 담기게 된다. 물론 이렇게 사용하지 ..
스프링 MVC 2 - 체크 박스 - 단일2
스프링 MVC 2 - 체크 박스 - 단일2
2022.08.12체크 박스 - 단일2 타임리프 개발할 때 마다 이렇게 히든 필드를 추가하는 것은 상당히 번거롭다. 타임리프가 제공하는 폼 기능을 사용하면 이런 부분을 자동으로 처리할 수 있다. 타임리프 - 체크 박스 코드 추가 체크 박스의 기존 코드를 제거하고 타임리프가 제공하는 체크 박스 코드로 변경하자. 타임리프 체크박스 HTML 생성 결과 타임리프를 사용하면 체크 박스의 히든 필드와 관련된 부분도 함께 해결해준다. HTML 생성 결과를 보면 히든 필드 부분이 자동으로 생성되어 있다. 실행 로그 상품 상세에 적용하자. item.html 주의: item.html에는 th:object를 사용하지 않았기 때문에 th:field부분에 ${item.open}으로 적어주어야 한다. disabled를 사용해서 상품 상세에서는 체..
스프링 MVC 2 - 체크 박스 - 단일1
스프링 MVC 2 - 체크 박스 - 단일1
2022.08.12체크 박스 - 단일1 단순 HTML 체크 박스 resources/templates/form/addForm.html 추가 상품이 등록되는 곳에 다음과 같이 로그를 남겨서 값이 잘 넘어오는지 확인해보자. FormItemController 추가 FormItemController에 @Slf4j 애노테이션 추가 실행 로그 체크 박스를 체크하면 HTML Form에서 open=on이라는 값이 넘어간다. 스프링은 on이라는 문자를 true 타입으로 변환해준다. (스프링 타입 컨버터가 이 기능을 수행하는데, 뒤에서 설명한다.) 주의 - 체크 박스를 선택하지 않을 때 HTML에서 체크 박스를 선택하지 않고 폼을 전송하면 open이라는 필드 자체가 서버로 전송되지 않는다. HTTP 요청 메시지 로깅 HTTP 요청 메시지를 ..