주노 님의 블로그

[Spring] 2. thymeleaf 템플릿을 사용해 동적으로 웹 생성하고, 빌드하기 java.lang.UnsupportedClassVersionError 해결법 본문

공부/Spring

[Spring] 2. thymeleaf 템플릿을 사용해 동적으로 웹 생성하고, 빌드하기 java.lang.UnsupportedClassVersionError 해결법

juno0432 2024. 7. 27. 18:12

시작하기에 앞서

아래 내용은 김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB접근기술에서 발췌한 내용입니다.

 

 

강의자료 일부를 발췌하는건 괜찮다고 하셨다.

무료강의로 지식을 공유해주신 김영한님께 다시한번 감사의 인사를 올리겠습니다

(_ _) (유료도 샀어요!)

 

자바의 src/resources/main/static에 index.html을 추가해주면 된다.

 

 

 

스프링 부트는 시작시 index.html을 찾는다고 한다..

static 디렉토리는 필수적이지는 않다고 한다.

 

지금 위 페이지는 정적페이지 이다

말그대로 그냥 내가 짠 코드 그대로 보여주는것일뿐

 

템플릿 엔진을 사용하면 동적엔진을 구할 수 있다

thymeleaf 템플릿 엔진을 사용하여 웹 페이지를 구성해보자

 

 

hello_spring에 controller 패키지를 만든 후

Controller 클래스를 만들어주자

 

package springProject.hello_spring.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class helloController {

    //웹 에서 hello경로로 get요청이 들어오면 아래 메서드를 반환해준다.
    @GetMapping("hello")
    public String hello(Model model) {
        model.addAttribute("data", "hello!!");
        return "hello";
    }
}

 

resources > templates에 hello.html파일을 생성하고 아래와 같이 작성하자.

http://localhost:8080/hello

로 접속해 본다

 

저기서 ${data}는 > helloController의 data이다

 

어떻게 위와 같은 방식으로 작동한걸까?

사용자가 localhost:8080/hello주소로 접속을 한다

위 방식을 get방식이라고 한다

 

http get 요청이 내장된 톰캣서버로 전송이 된다

 

스프링 컨테이너는 내장 톰캣 서버에서 받은 http 요청을 분석한다

 

Cotroller파일의

@GetMapping("hello") 어노테이션이 붙어 있는 메서드를 찾아 해당 경로의 요청을 처리한다

 

helloController의 hello 메서드가 실행되는데

이 메서드는 Model 객체에 data라는 키와 hello!!라는 값을 추가한다

 

메서드의 리턴값을 (return : hello) 스프링은 resources/templates 디렉터리 안에서 hello.html 파일을 찾아서 렌더링을 수행한다.

 

뷰 템플릿(thymeleaf)는 ${data}와 같은 표현식을 사용하여, Model에 저장된 키값과 매칭후 밸류값을 출력한다

 

빌드하고 실행하기

터미널 클릭

 

 

플러스옆 아래키에서 git bash(git을 설치해야합니다)

 

 

만약 본인의 환경변수가 제대로 설정되어있는데 

구구절절한 오류가 뜬다면?

실행

 

set Java_HOME=c:/Program Files/Java/jdk-20

본인 오류에서 나온 자바버전 입력 (jdk-20)

 

또는 본인이 이클립스, jdk, 인텔리제이등 학교에서 이것저것 깔아서 모르겠다!

하시는분은

 

검색 > 환경변수에서
java_home

CLASSPATH

PATH의 자바관련경로

 

셋 중에 하나가 CMD에서 java -version에 있는지 확인하세요

저는 11버전이 PATH에 설정되어있더라구요..

 

./gradlew build입력

cd build

cd lib

java -jar build/libs/hello-spring-0.0.1-SNAPSHOT.jar

 

오늘 수업은 MVC패턴의 기본인

Model과(model.addAttribute())

VIEW와(hello.html)

Controller에 (helloController.java) 대해 간략히 배웠다.

 

 

 

참고자료

https://docs.spring.io/spring-boot/reference/web/reactive.html#web.reactive.webflux.welcome-page

 

Reactive Web Applications :: Spring Boot

Spring Boot includes support for the following embedded reactive web servers: Reactor Netty, Tomcat, Jetty, and Undertow. Most developers use the appropriate starter to obtain a fully configured instance. By default, the embedded server listens for HTTP re

docs.spring.io

https://abcdefgh123123.tistory.com/325

 

[java spring boot] Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation. 에러

문제 상황 인프런 백엔드 강의를 듣고 스프링부트로 gradlew 를 build하려고 하니 아래와 같은 에러가 발생 Please set the JAVA_HOME variable in your environment to match the location of your Java installation. 해결 구글

abcdefgh123123.tistory.com