Spring
스프링 MVC 2 - 요구사항 추가
스프링 MVC 2 - 요구사항 추가
2022.08.12요구사항 추가 타임리프를 사용해서 폼에서 체크박스, 라디오 버튼, 셀렉트 박스를 편리하게 사용하는 방법을 학습해보자. 기존 상품 서비스에 다음 요구사항이 추가되었다. 판매 여부 판매 오픈 여부 체크 박스로 선택할 수 있다. 등록 지역 서울, 부산, 제주 체크 박스로 다중 선택할 수 있다. 상품 종류 도서, 식품, 기타 라디오 버튼으로 하나만 선택할 수 있다. 배송 방식 빠른 배송 일반 배송 느린 배송 셀렉트 박스로 하나만 선택할 수 있다. 예시 이미지 ItemType - 상품 종류 상품 종류는 ENUM을 사용한다. 설명을 위해 description필드를 추가했다. 배송 방식 - DeliveryCode 배송 방식은 DeliveryCode라는 클래스를 사용한다. code는 FAST 같은 시스템에서 전달하는 ..
스프링 MVC 2 - 입력 폼 처리
스프링 MVC 2 - 입력 폼 처리
2022.08.11입력 폼 처리 지금부터 타임리프가 제공하는 입력 폼 기능을 적용해서 기존 프로젝트의 폼 코드를 타임리프가 지원하는 기능을 사용해서 효율적으로 개선해보자. th:object: 커맨드 객체를 지정한다. *{...} 선택 변수 식이라고 한다. th:object에서 선택한 객체에 접근한다. th:field HTML 태그의 id, name, value 속성을 자동으로 처리해준다. 랜더링 전 랜더링 후 등록 폼 th:object를 적용하려면 먼저 해당 오브젝트 정보를 넘겨주어야 한다. 등록 폼이기 때문에 데이터가 비어있는 빈 오브젝트를 만들어서 뷰에 전달하자. FormItemController 변경 이제 본격적으로 타임리프 등록 폼을 변경하자. form/addForm.html 변경 코드 부분 th:object="$..
스프링 MVC 2 - 타임리프 스프링 통합
스프링 MVC 2 - 타임리프 스프링 통합
2022.08.11타임리프 스프링 통합 타임리프는 크게 2가지 메뉴얼을 제공한다. 기본 메뉴얼:https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 스프링 통합 메뉴얼:https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 타임리프는 스프링 없이도 동작하지만, 스프링과 통합을 위한 다양한 기능을 편리하게 제공한다. 그리고 이런 부분은 스프링으로 백엔드를 개발하는 개발자 입장에서 타임리프를 선택하는 하나의 이유가 된다. 스프링 통합으로 추가되는 기능들 스프링으로 SpringEL 문법 통합 ${@myBean.doSomething()} 처럼 스프링 빈 호출 지원 편리한 폼 관리를 위한 추가 속성 th:obj..
스프링 MVC 2 - 프로젝트 설정
스프링 MVC 2 - 프로젝트 설정
2022.08.11프로젝트 설정 (타임리프 - 스프링 통합과 폼) 스프링 MVC 1편에서 마지막에 완성했던 상품 관리 프로젝트를 떠올려보자. 지금부터 이 프로젝트에 스프링이 지원하는 다양한 기능을 붙여가면서 스프링 MVC를 깊이있게 학습해보자. MVC1 편에서 개발한 상품관리 프로젝트를 약간 다듬어서 form-start라는 프로젝트에 넣어두었다. 프로젝트 설정 순서 form-start의 폴더 이름을 form로 변경하자. 프로젝트 임포트 File→Open→해당 프로젝트의 build.gradle을 선택하자. 그 다음에 선택창이 뜨는데, Open as Project를 선택하자. ItemServiceApplication.main()을 실행해서 프로젝트가 정상 수행되는지 확인하자. 실행 http://localhost:8080/ h..
스프링 MVC 2 - 정리(타임리프 - 기본기능)
스프링 MVC 2 - 정리(타임리프 - 기본기능)
2022.08.11정리(타임리프 - 기본기능) 프로젝트 생성 타임리프 소개 텍스트 - text, utext text는 기본적으로 th:text="${data}" 이렇게 출력해도 되고, 컨텐츠 안에서 직접 [[${data}]]이렇게 출력해도 된다. 타임리프는 기본적으로 HTML 엔티티로 중복이 되는 기호들(ex (gt), =(ge),
스프링 MVC 2 - 템플릿 레이아웃2
스프링 MVC 2 - 템플릿 레이아웃2
2022.08.11템플릿 레이아웃2 템플릿 레이아웃 확장 앞서 이야기한 개념을 정도에만 적용하는게 아니라 전체에 적용할 수도 있다. /resources/templates/template/layoutExtend/layoutFile.html /resources/templates/template/layoutExtend/layoutExtendMain.html 생성 결과 layoutFile.html을 보면 기본 레이아웃을 가지고 있는데, 에 th:fragment 속성이 정의되어 있다. 이 레이아웃 파일을 기본으로 하고 여기에 필요한 내용을 전달해서 부분부분 변경하는 것으로 이해하면 된다. layoutExtendMain.html는 현재 페이지인데, 자체를 th:replace를 사용해서 변경하는 것을 확인할 수 있다. 결곡 layou..