본문 바로가기

Spring52

메시지, 국제화 메시지 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 하면 어떻게 해야할까? 여러 화면에 보이는 상품명, 가격, 수량 등, 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.
스프링 MVC - 웹페이지 만들기(1) 프로젝트 생성 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.6.x Project Metadata Group: hello Artifact: item-service Name: item-service Package name: hello.itemservice (package name에는 특수문자 x) Packaging: Jar (주의!) Java: 11 요구사항 분석 상품을 관리할 수 있는 서비스를 만들어보자. 상품 도메인 모델 상품 ID 상품명 가격 수량 상품 관리 기능 상품 목록 상품 상세 상품 등록 상품 수정 요구사항이 정리되고 디자이너, .. 2022. 4. 14.