Spring/MVC 23

[Spring MVC] 스프링 MVC Redirect 처리 방법

스프링 MVC Redirect 처리 방법#Spring/MVC/Redirect/Redirect 처리 방법/1. HttpServletResponse의 sendRedirect()/2. ResponseEntity/3. RedirectView 직접 반환/4. “redirect:” 접두사/RedirectAttributes/1. Flash Attribute/2. Query Parameter 전달RedirectRedirect 는 클라이언트의 요청을 완전히 새로운 URL로 전달하여 처리하는 방식이다.웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동한다.Redirect 처리 방법1. HttpServletResponse의 sendRedirect()@PostMapping("..

Spring/MVC 03:27:43

[Spring MVC] 스프링 MVC 기본 기능 정리

스프링 MVC 기본 기능 정리#Abstract/SpringMVC스프링 MVC 구조와 동작원리, 스프링 MVC가 제공하는 기능의 기본적인 사용법을 정리했습니다./스프링 MVC 구조/ArgumentResolver와 HTTP 메시지 컨버터/ArgumentResolver/HTTP 메시지 컨버터/스프링 MVC 확장/컨트롤러 등록/컨트롤러 등록 - Controller 인터페이스 구현(거의 안씀)/컨트롤러 등록 - HttpRequestHandler 인터페이스 구현(거의 안씀)/컨트롤러 등록 - @Controller, @RestController + @RequestMapping, @XXXMapping/HTTP 조회 방식/HTTP 요청 파라미터 조회/HTTP 요청 파라미터 조회 - 스프링 MVC/1. HttpServle..

Spring/MVC 02:37:07

[Spring MVC] 타임리프 문법 정리

타임리프 몰아서 정리#Spring/Thymeleaf/타임리프 사용 선언/th:xxx=“value2”/타임리프 속성/th:href/th:onclick/반복 출력 - th:each/반복 상태 유지/내용 변경 - th:text/속성 변경 - th:value/속성 변경 - th:action/조건문 평가 - th:if, th:switch/텍스트 - text, utext/Escape/HTML 엔티티/Unescape/th:inline="none"/속성 값 설정/속성 추가/checked 처리">/블록 - /URL 링크 표현식 - @{...}/리터럴 대체 - |...|/변수 표현식 - ${...}/지역 변수 선언 - th:with/URL 링크 표현식2 - @{...}/URL 링크 간단히/타임리프 기본 객체/유틸리티 객체..

Spring/MVC 2025.02.13

[Spring/MVC] 12. Bean Validation

12. Bean Validaiton정리이전 챕터에서 검증 로직을 스프링 Validator를 구현하여 처리하는 방법까지 살펴봤다. 그런데, 매 번 코드로 검증 로직을 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다.이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화 한 것이 바로 Bean Validation 이다.public class Item { private Long id; @NotBlank(message = "공백 X") // 이런 식으로 메시지를 지정할 수도 있다. private String itemName; @NotNull @Range(min = 1000, max = 10000..

Spring/MVC 2025.01.19

[Spring/MVC] 11. Validation

11. Validation주의) 이번 챕터의 정리 글은 매우 깁니다~정리폼 입력 시 숫자를 문자로 작성하거나 해서 검증 오류가 발생하면 오류 화면으로 바로 이동한다. 이렇게 되면 사용자는 처음부터 해당 폼으로 다시 이동해서 입력을 해야 한다. 웹 서비스는 폼 입력 시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다.참고: 클라이언트 검증, 서버 검증클라이언트 검증은 조작할 수 있으므로 보안에 취약하다.서버만으로 검증하면, 즉각적인 고객 사용성이 부족해진다.둘을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수API 방식을 사용하면 API 스펙을 잘 정의해서 검증 오류를 API 응답 결과에 잘 남겨주어야 함상품 저장 Validation 실패사용자가..

Spring/MVC 2025.01.19

[Spring/MVC] 10. 메시지 국제화

10. 메시지 국제화정리메시지악덕? 기획자가 화면에 보이는 문구가 마음에 들지 않는다고, 상품명이라는 단어를 모두 상품이름으로 고쳐달라고 한다. “상품명”이라는 메시지가 하드코딩되어 있다면, 여러 HTML 파일에 흩어져있는 “상품명”을 직접 일일히 찾아서 “상품이름”으로 수정해야 할 것이다.이런 다양한 메시지를 한 곳에서 관리하도록 하는 기능을 메시지 기능이라 한다.예를 들어서 messages.properties라는 메시지 관리용 파일을 만들고item=상품item.id=상품 IDitem.itemName=상품명item.price=가격item.quantity=수량각 HTML들은 다음과 같이 해당 데이터를 key 값으로 불러서 사용하는 것이다.국제화메시지의 기능을 조금 더 확장해서 생각해보면, 메시지 파일을 ..

Spring/MVC 2025.01.19

[Spring/MVC] 09. 타임리프 - 스프링 통합과 폼

09. 타임리프 - 스프링 통합과 폼#Spring/MVC정리타임리프 스프링 통합타임리프는 스프링을 위해 기능을 제공한다고 말해도 과할 정도가 아닌 수준의 스프링 통합을 위한 다양한 기능을 제공한다.스프링 통합으로 추가되는 기능스프링의 SpringEL 문법 통합${@myBean.doSomething()}처럼 스프링 빈 호출 지원편리한 폼 관리를 위한 추가 속성th:object (기능 강화, 폼 커맨드 객체 선택)th:field, th:errors, th:errorclass폼 컴포넌트 기능checkbox, radio button, List 등을 편리하게 사용할 수 있는 기능 지원스프링의 메시지, 국제화 기능의 편리한 통합스프링의 검증, 오류 처리 통합스프링의 변환 서비스 통합 (ConversionServic..

Spring/MVC 2024.12.28

[Spring MVC] 08. 타임리프 기본기능

08. 타임리프 기본기능정리타임리프 사용 선언(스프링 부트에 타임리프를 추가했으면 선언하지 안하도 타임리프 문법이 적용되는 것 같긴 합니다)기본 표현식• 간단한 표현: ◦ 변수 표현식: ${...} ◦ 선택 변수 표현식: *{...} ◦ 메시지 표현식: #{...} ◦ 링크 URL 표현식: @{...} ◦ 조각 표현식: ~{...}• 리터럴 ◦ 텍스트: 'one text', 'Another one!',… ◦ 숫자: 0, 34, 3.0, 12.3,… ◦ 불린: true, false ◦ 널: null ◦ 리터럴 토큰: one, sometext, main,…• 문자 연산: ◦ 문자 합치기: + ◦ 리터럴 대체: |The name is ${name}|• 산술 연산: ◦ Binary ope..

Spring/MVC 2024.12.27

[Spring MVC] 07. 스프링 MVC - 웹 페이지 만들기(타임리프, PRG, RedirectAttribute)

7. 스프링 MVC - 웹 페이지 만들기(타임리프, PRG, RedirectAttribute)정리Item - 상품 객체, Repository@Datapublic class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item() { } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }}리포지..

Spring/MVC 2024.12.26

[Spring/MVC] WebMvcConfigurer

김영한님 Spring MVC 강의를 통해 공부하다가 Spring MVC에 WebMvcConfigurer 라는 확장 포인트가 있다는 점을 알게 되었다. (강의에서는 ArgumentResolver와 MessageConverter를 WebMvcConfigurer에서 확장할 수 있다 정도만 설명하고 넘어감)Spring MVC에는 대부분의 기능이 이미 구현되어 있어 확장 포인트가 많지 않다고 했는데, WebMvcConfigurer에서는 어떤 부분을 확장할 수 있는지 구체적으로 알아보자. WebMvcConfigurer란?WebMvcConfigurer 는 스프링 부트 혹은 스프링 MVC 애플리케이션에서 MVC 관련 설정을 직접 확장하거나 추가할 수 있게 해주는 확장 포인트 인터페이스이다. 스프링 부트가 제공하는 We..

Spring/MVC 2024.12.24