본문 바로가기

Spring MVC34

[MVC] 검증2 - Bean Validation(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. Bean Validation - 시작Bean Validation 기능을 스프링 없이 순수하게 사용하는 방법을 테스트 코드로 확인해 본다. 1. 의존관계 추가build.gradle에 다음 의존성을 추가한다.implementation 'org.springframework.boot:spring-boot-starter-validation'이 의존성을 추가하면 다음과 같은 라이브러리가 포함된다.jakarta.validation-api : Bean Validation 인터페이스hibernate-validator : 실제 구현체2. 도메인 객체에 검증 애노테이션 적용@Datapublic class Item { private Long id; @No.. 2025. 7. 13.
[MVC] 검증1 - Validation(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 오류 코드와 메시지 처리1오류 메시지를 체계적으로 다루어보자. FieldError 생성자스프링의 FieldError, ObjectError는 두 가지 생성자를 제공한다.// 간단한 생성자public FieldError(String objectName, String field, String defaultMessage);// 전체 파라미터 생성자public FieldError(String objectName, String field, @Nullable Object rejectedValue, boolean bindingFailure, @Nullable String[] codes, @Nullable Object[] arguments,.. 2025. 7. 8.
[MVC] 검증1 - Validation(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 검증 직접 처리 이번에는 스프링이 제공하는 기능을 사용하지 않고, 컨트롤러에서 직접 검증을 구현하는 방식으로 상품 등록 검증 로직을 작성해 본다. 검증 요구사항 정리상품명: 필수, 공백 불가가격: 1,000원 이상, 1,000,000원 이하수량: 최대 9,999복합 조건: 가격 * 수량의 합은 10,000원 이상1. 컨트롤러 수정컨트롤러에서 직접 검증 로직을 구현한다.@PostMapping("/add")public String addItem(@ModelAttribute Item item, RedirectAttributes redirectAttributes, Model model) { Map errors = new HashMap();.. 2025. 7. 3.
[MVC] 타임리프 - 메시지, 국제화 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 메시지, 국제화 소개메시지 기능이란?애플리케이션을 개발하다 보면 사용자 화면(UI)에 출력되는 텍스트가 수시로 바뀌는 일이 자주 발생한다.예를 들어 상품명이라는 단어를 모두 상품이름으로 바꿔달라는 요청이 들어왔다고 가정해보자.다음과 같은 HTML 파일들에 하드코딩된 텍스트를 모두 찾아서 변경해야 한다.addForm.htmleditForm.htmlitem.htmlitems.html하드코딩된 메시지를 직접 수정하는 방식은 다음과 같은 문제를 가진다.화면 수가 많아질수록 수정 범위가 커진다.실수로 일부 화면을 누락할 가능성이 있다.변경 내역 추적이나 관리가 어렵다.이러한 문제를 해결하기 위해 메시지 기능을 사용한다.메시지는 화면에 출력될 텍스.. 2025. 6. 29.
[MVC] 타임리프 - 스프링 통합과 폼(2) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 체크 박스 - 단일1HTML에서 체크박스를 사용할 때, 체크 여부에 따라 서버로 전달되는 값의 유무와 스프링 MVC의 처리 방식을 이해해야 한다. 단순 HTML 체크박스 예제resources/templates/form/addForm.html판매 여부 판매 오픈 서버 로그 확인FormItemController@PostMapping("/add")public String addItem(Item item, RedirectAttributes redirectAttributes) { log.info("item.open={}", item.getOpen()); ...}클래스에 @Slf4j 어노테이션을 .. 2025. 6. 24.
[MVC] 타임리프 - 스프링 통합과 폼(1) 공부 내용을 정리하고 앞으로의 학습에 이해를 돕기 위해 작성합니다. 입력 폼 처리타임리프가 제공하는 입력 폼 기능을 사용해 기존 HTML 폼을 효율적으로 개선할 수 있다. th:object, th:field, *{} 같은 기능을 활용하면 반복되는 폼 요소 설정을 자동화할 수 있다. 선택 변수 식과 th:fieldth:object : 폼에서 사용할 커맨드 객체를 지정한다.*{...} : 선택 변수 식으로, th:object에서 지정한 객체의 필드를 의미한다.th:field : HTML 태그의 id, name, value 속성을 자동으로 생성해준다.예시렌더링 전 렌더링 후 등록 폼빈 객체를 모델에 담아 폼에 넘긴다. FormItemController@GetMapping("/add")public String .. 2025. 6. 21.