Spring53 검증 - Bean Validation Bean Validation 이란? 먼저 Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 쉽게 이야기해서 검증 애노테이션과 여러 인터페이스의 모음이다. Bean Validation을 사용하려면 build.gradle에 implementation 'org.springframework.boot:spring-boot-starter-validation' 의존관계를 추가한다. 테스트 코드 @Data public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer pri.. 2022. 5. 29. 메시지, 국제화 메시지 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면에 보이는 상품명, 가격, 수량 등, label 에 있는 단어를 변경하려면 다음 화면들을 다 찾아가면서 모두 변경해야 한다. 왜냐하면 해당 HTML 파일에 메시지가 하드코딩 되어 있기 때문이다. 이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다. 국제화 메시지에서 설명한 메시지 파일( messages.properties )을 각 나라별로 별도로 관리하면 서비스를 국제화 할 수 있다. 영어를 사용하는 사람이면 messages_en.properties 를 사용하고, 한국어를 사용하는 사람이면 messages_ko.properties 를 사용하.. 2022. 5. 26. 타임리프 - 기본기능(2) URL 링크 단순한 URL @{/hello} -> /hello 메뉴얼 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#link-urls 리터럴 리터럴은 소스 코드상에 고정된 값을 말하는 용어이다. String a = "Hello" int a = 10 * 20 "Hello"는 문자 리터럴, 10과 20은 숫자 리터럴이다. 타임리프에서 문자 리터럴은 항상 ' ( 작은 따옴표 ) 로 감싸야 한다. 공백 없이 쭉 이어진다면 하나의 토큰으로 인지해서 작은 따옴표를 생략할 수 있다. 연산 비교연산 : HTML 엔티티 사용만 조심 조건식 : 자바와 동일 Elvis 연산자 : 조건식의 편의 버전 No-Operation : _ 인 경우 타임리프 실행하지 .. 2022. 5. 25. 타임리프 - 기본기능(1) 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 특징 서버 사이드 HTML 렌더링 (SSR) 네츄럴 템플릿 스프링 통합 지원 타임리프 사용 선언 TEXT [[$(data)]] 사용 Escape HTML 문서는 같은 특수 문자를 기반으로 정의된다. 따라서 뷰 템플릿으로 HTML 화면을 생성할 때는 출력하는 데이터에 이러한 특수 문자가 있는 것을 주의해서 사용해야 한다. Unescape 타임리프에서는 다음 기능을 사용하면 escape 기능을 사용하지 않는다. th:text -> th:utext [[ ... ]] -> [( ... )] 변수 (SpringEL) Object ${user.username} ${user['username']} ${user.getUsername.. 2022. 5. 25. 스프링 MVC - 웹페이지 만들기(3) 상품 등록 처리 - @ModelAttribute 상품 등록 폼은 다음 방식으로 서버에 데이터를 전달한다. POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 itemName=itemA&price=10000&quantity=10 예) 회원 가입, 상품 주문, HTML Form 사용 V1은 요청 파라미터 형식을 처리해야 하므로 @RequestParam 을 사용하자 addItemV1 - BasicItemController에 추가 (@RequestParam) 먼저 @RequestParam String itemName : itemName 요청 파라미터 데이터를 해당 변수에 받는다. Item 객체를 생성하고 .. 2022. 4. 16. 스프링 MVC - 웹페이지 만들기(2) 상품 서비스 HTML 부트스트랩 참고로 HTML을 편리하게 개발하기 위해 부트스트랩 사용했다. 상품 목록 HTML 상품 상세 HTML 상품 등록 폼 HTML 상품 수정 폼 HTML 핵심 비즈니스 로직을 개발하는 동안, 웹 퍼블리셔는 HTML 마크업을 완료했다. 상품 목록 - 타임리프 타임리프 타임리프 사용 선언 속성 변경 - th:href th:href="@{/css/bootstrap.min.css}" href="value1" 을 th:href="value2" 의 값으로 변경한다. 타임리프 뷰 템플릿을 거치게 되면 원래 값을 th:xxx 값으로 변경한다. 만약 값이 없다면 새로 생성한다. HTML을 그대로 볼 때는 href 속성이 사용되고, 뷰 템플릿을 거치면 th:href 의 값이 href 로 대체되면.. 2022. 4. 16. 이전 1 2 3 4 5 6 ··· 9 다음