전체 글 239

웹 애플리케이션에 메시지 적용하기

테스트 코드를 통해 메시지 적용을 확인했으니 이제 웹 어플리케이션에 메시지를 적용해보자. 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=취소   이제 기존에 작성했던 html 파일에 타임리프의 메시지 표현식을 이용해서 메시지를 사용해보자. 타임리프 메시지 표현식    #{...}  상품등록 상품명 ..

카테고리 없음 2024.07.24

스프링 메시지 소스 사용

스프링이 메시지와 국제화 기능을 모두 제공한다.  메시지 소스 설정하기spring.messages.basename=messages,config.i18n.messagesMessageSource를 스프링 빈으로 등록하지 않으면 message라는 이름으로 기본 등록된다. 따라서 message_en.properties와 같이 파일만 등록하면 자동인식이 된다.  hello=안녕hello.name=안녕 {0}hello=hellohello.name=hello {0}  package hello.itemservice.message;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org...

BackEnd/spring 2024.07.24

백준-4963번/섬의 개수(java)

문제 이해 이 문제는 2667번 단지번호붙히기 문제와 매우 유사한 문제라는 생각을 했다.https://www.acmicpc.net/problem/2667 하지만 차이점도 존재했는데, 단지번호 붙히기 문제는 위아래,좌우 로만 이동이 가능했지만 이번 문제는 대각선 이동도 고려해줘야 했다.  문제 풀이 대각선 이동을 위해 정적 변수로 배열 dx, dy를 선언해주었다.static int[] dx={-1,0,1};static int[] dy={-1,0,1};  그리고 지도를 돌면서 dfs(깊이우선탐색)을 수행해줌으로써 연결성분을 구할 수 있다.for(int i=0; i   public static void dfs(int x, int y){ Map[x][y]=0; for(int i=0; i=0 && nx..

알고리즘/백준 2024.07.24

백준-2667번/단지번호붙이기(java)

문제 이해 연결성분을 구하는 과정과 유사하기 때문에 dfs의 성질을 이용하여 풀어야겠다고 생각 하였다.이동은 위,아래,좌,우 만 가능하다따라서 이차원 배열에서 x좌표를 +1,-1하거나 y좌표를 +1,-1하는 방식으로 이동을 할 수 있다는 뜻이다. 문제 해결 static int[] dx = {-1, 1, 0, 0};static int[] dy = {0, 0, -1, 1}; public static void dfs(int x, int y) { arr[x][y] = 0; count += 1; for (int i = 0; i = 0 && nx = 0 && ny  arr[dx][dy]가 1 일때만 이동하여서 연결성분을 알아낼수있도록 하였고, if문에 조건을 넣어서 배열의 영역을 벗어나지 않도록 하..

알고리즘/백준 2024.07.23

셀렉트 박스

여러개의 선택지중에 하나를 선택할 수 있도록 하기 위해서 셀렉트 박스를 활용할 수 있다. 상품의 배송방식을 고르는 것을 셀렉트 박스로 구현해보자. package hello.itemservice.domain.item;import lombok.AllArgsConstructor;import lombok.Data;/** * FAST : 빠른배송 * NORMAL : 일반배송 * SLOW : 느린배송 */@Data@AllArgsConstructorpublic class DeliveryCode { private String code; private String displayName;}  @ModelAttribute("deliveryCodes")public List deliveryCodes() { Li..

BackEnd/Thymeleaf 2024.07.23

라디오 버튼

라디오 버튼이란 여러 선택지 중 하나의 선택지를 선택할때 사용한다. (라디오 버튼은 선택을 무조건 하나 해줘야한다.) 라디오 버튼을 이용하여 상품의 종류가 무엇인지를 선택하는 코드를 작성해보자.  package hello.itemservice.domain.item;public enum ItemType { BOOK("도서"), FOOD("음식"), ETC("기타"); private final String description; ItemType(String description) { this.description = description; } public String getDescription() { return description; }}   ite..

BackEnd/Thymeleaf 2024.07.23

체크 박스 - 멀티

체크박스를 멀티로 사용하여 하나 이상을 체크할 수 있도록 하는 방법에 대해서 공부하였다. 우선 FormItemController에서 지역들을 담고있는 Map을 모델에 넘겨주는 작업을 해줘야한다.@ModelAttribute("regions")public Map regions(){ Map regions = new LinkedHashMap(); regions.put("SEOUL","서울"); regions.put("BUSAN","부산"); regions.put("JEJU","제주"); return regions;}@ModelAttribute를 이용하여 해당 컨트롤러를 요청할때 regions에서 반환한 값이 모델에 자동으로 담기도록 해준다.   등록 지역 ..

BackEnd/Thymeleaf 2024.07.23

체크 박스 - 단일(1)

체크박스 사용 방법에 대해서 공부 해보았다.  우선 상품 판매 여부를 체크할 수 있는 체크 박스를 addForm.html에 추가하였다.판매 여부 판매 오픈   로그를 남겨서 실행후 값이 잘 넘어오는지를 확인해보면 문제점을 확인할 수 있다. 체크를 하지 않으면 null값이 넘어오는데, 이를 수정할 수 있는 방법에 대해서 공부하였다.FormItemController : item.open=true //체크 박스를 선택하는 경우FormItemController : item.open=null //체크 박스를 선택하지 않는 경우  체크 해제를 인식하기 위해서 약간의 트릭을 사용하는데판매 여부 판매 오픈 ..

BackEnd/Thymeleaf 2024.07.22