Spring
스프링 MVC 2 - 기본 객체들
스프링 MVC 2 - 기본 객체들
2022.08.04기본 객체들 타임리프는 기본 객체들을 제공한다. ${#request} ${#response} ${#session} ${#servletContext} ${#locale} 그런데 #request는 HttpServletRequest 객체가 그대로 제공되기 때문에 데이터를 조회하려면 request.getParameter("data") 처럼 불편하게 접근해야 한다. 이런 점을 해결하기 위해 편의 객체도 제공한다. HTTP 요청 파라미터 접근: param 예) ${param.paramData} HTTP 세션 접근: session 예) ${session.sessionData} 스프링 빈 접근: @ 예) ${@helloBean.hello('Spring!')} BasicController 추가 /resources/tem..
스프링 MVC 2 - 변수 - SpringEL
스프링 MVC 2 - 변수 - SpringEL
2022.08.04변수 - SpringEL 타임리프에서 변수를 사용할 때는 변수 표현식을 사용한다. 변수 표현식 : ${...} 그리고 이 변수 표현식에는 스프링 EL이라는 스프링이 제공하는 표현식을 사용할 수 있다. BasicController 추가 /resources/templates/basic/variable.html SpringEL 다양한 표현식 사용 Object user.username : user의 username을 프로퍼티 접근 → user.getUsername() user['username']: 위와 같음 → user.getUsername() user.getUsername(): user의 getUsername()을 직접 호출 List users[0].username: List에서 첫 번째 회원을 찾고 use..
스프링 MVC 2 - 텍스트 - text, utext
스프링 MVC 2 - 텍스트 - text, utext
2022.08.03텍스트 - text, utext 타임리프의 가장 기본 기능인 텍스트를 출력하는 기능 먼저 알아보자. 타임리프는 기본적으로 HTML 태그의 속성에 기능을 정의해서 동작한다. HTML의 콘텐츠(content)에 데이터를 출력할 때는 다음과 같이 th:text를 사용하면 된다. HTML 태그의 속성이 아니라 HTML 콘텐츠 영역안에서 직접 데이터를 출력하고 싶으면 다음과 같이 [[...]]를 사용하면 된다. 컨텐츠 안에서 직접 출력하기 = [[${data}]] BasicController /resources/templates/basic/text-basic.html 실행 http://localhost:8080/basic/text-basic Escape HTML 문서는 같은 특수 문자를 기반으로 정의된다. 따라서..
스프링 MVC 2 - 타임리프 소개
스프링 MVC 2 - 타임리프 소개
2022.08.03타임리프 소개 공식 사이트: https://www.thymeleaf.org/ 공식 메뉴얼 - 기본 기능: https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html 공식 메뉴얼 - 스프링 통합: https://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html 이전 강의인 스프링 MVC 1편에서 타임리프를 간단히 사용해보고, 그 특징들도 알아보았다. 이번 시간에는 타임리프의 개념은 간단히 소개하고, 실제 동작하는 기본 기능 위주로 알아보겠다. 타임리프 특징 서버 사이드 HTML 렌더링(SSR) 네츄럴 템플릿 스프링 통합 지원 서버 사이드 HTML 렌더링 (SSR) 타임리프는 백엔드 서버에서 HTML을..
스프링 MVC 2 - 프로젝트 생성
스프링 MVC 2 - 프로젝트 생성
2022.08.02프로젝트 생성 사전 준비물 Java 11 설치 IDE: IntelliJ 또는 Eclipse 설치 스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성 https://start.spring.io 프로젝트 선택 Project: Gradle Project Language: Java Spring Boot: 2.5.x Project Metadata Group: hello Artifact: thymeleaf-basic Name: thymeleaf-basic Package name: hello.thymeleaf Packaging: Jar Java: 11 Dependencies: Spring Web, Lombok, Thymeleaf build.gradle 동작 확인 기본 메인 클래스 실행(ThymeleafBasi..
스프링 MVC 1- 정리(스프링 MVC - 웹 페이지 만들기)
스프링 MVC 1- 정리(스프링 MVC - 웹 페이지 만들기)
2022.08.01정리(스프링 MVC - 웹 페이지 만들기) 프로젝트 생성 요구사항 분석 요구사항은 굉장히 단순했다. 도메인 모델 4개 기능 4개 상품 도메인 개발 상품 서비스 HTML 상품 목록 - 타임리프 상품 목록에 타임리프를 적용했다. 이렇게 타입리프를 선언했고, 타임리프의 특징은 태그를 유지한 상태로 속성만 바꾸는 역할을 하는 것이다. 타임 리프 핵심은 th:xxx 가 붙은 부분은 서버사이드에서 랜더링되고, 기존 것을 대체한다. 그리고 HTML파일로 직접 열었을 때, 'th:xxx'가 있어도 웹 브라우저는 th 속성을 알지 못하므로 무시한다. 이렇게 순수 HTML을 그대로 유지하면서 뷰 템플릿도 사용할 수 있는 타임리프의 특징을 네츄럴 템플릿이라 한다. 상품 상세 상품 등록 폼 상품 등록 폼: GET /basic..