🖥️ Back

스프링 웹프로젝트에서 검증 기능을 매번 코드르 길게 치는 것은 번거롭다.그래서 빈값 체크, 크기 등 일반적인 로직은 스프링에서 Bean Validation이라고 어노테이션을 제공한다.//build.gradleimplementation 'org.springframework.boot:spring-boot-starter-validation'public class Item { private Long id; @NotBlank //빈값, 공백 체크 private String itemName; @NotNull @Range(min = 1000, max = 1000000) //범위 안의 값 private Integer price; @NotNull @Max(..
웹 사이트 관리하면서 입력폼을 받다보면 검증 로직이 필수적이다.스프링에서 처리하는 검증로직을 점차적으로 발전시켜가본다. 검증시 오류가 발생하면 필드명을 key로 설정하여 HashMap에 담아 보관한다. @PostMapping("/add") public String addItem(@ModelAttribute ValidationItem item, RedirectAttributes redirectAttributes, Model model) { //검증 오류 결과 보관 Map errors = new HashMap(); //검증 로직 if(!StringUtils.hasText(item.getItemName())) { errors.pu..
프로젝트 운영에 있어서 문구들을 공통 파일로 관리하면 편하다.resources 폴더 아래로 messages 파일을 만들면 스프링이 알아서 스프링 빈으로 등록해준다.//resources > messages_ko.propertieshello=안녕hello.name=안녕 {0}label.item=상품label.item.id=상품 IDlabel.item.itemName=상품명label.item.price=가격label.item.quantity=수량page.items=상품 목록page.item=상품 상세page.addItem=상품 등록page.updateItem=상품 수정button.save=저장button.cancel=취소//messages_en.propertieshello=hellohello.name=hell..
부서별 최대 연봉을 가진 사용자를 조회# 테이블 삭제DROP TABLE IF EXISTS users; # 테이블 생성CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), department VARCHAR(100), salary INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);# 재귀 설정SET SESSION cte_max_recursion_depth = 1000000; # 더미 데이터INSERT INTO users (name, department, salary, created_at)WITH RECURSIVE cte (n) AS( SELECT 1 UN..
공통 기능을 가진 부모 클래스에서 조금씩 다르게 쓰고 싶을 때 추상클래스예를 들어 동물에는 돼지, 고양이, 토끼, 강아지 등 다양한 동물이 있다. -> 기본적으로 동물이지만 종은 각자 정해! 어떤 기능을 꼭 가지고 있어야하는 규칙(약속)이 있을 때 인터페이스예를 들어 귀여움이라는 기능을 돼지, 고양이, 키티 등 다양하게 있다. -> 귀여우면 cute() 있어야 해! 쉽게 말하면 추상클래스는 공통 부모, 인터페이스는 계약서이다. 추상 클래스인터페이스키워드abstract classinterface상속, 구현extends (1개만 가능)implements (여러 개 가능)필드일반 필드 가능public static final 상수만 가능메서드일반 메서드 + 추상 메서드기본은 추상메서드, default 가능메서드..
입력 폼 처리 @GetMapping("/add") public String addForm(Model model) { //빈 객체 전달 model.addAttribute("item", new Form()); return "thymeleaf/form/addForm"; } th:field는 id, name, vale 속성을 모두 자동으로 만들어준다. 상품명 가격 수량 렌더링 전 렌더링 후 요구사항 추가 판매여부는 체크 박스로 선택할 수 있도록 할것이다. 상품종류는 라디오버튼으로 하나만 선택할 수 있도록 할 것이다. 배송방식은 셀렉트..
지구용사
'🖥️ Back' 카테고리의 글 목록 (5 Page)