[SpringBoot] JSP 연결하기

반응형

 

 

SpringBoot, JSP 연결하기

 

 

 

  SpringBoot 설정하기

JSP를 가져오기 위해서는 webapp/WEB-INF가 존재해야 한다.

 SpringBoot에서 JSP를 불러오기 위해서는 다음과 같이 파일을 설정해야 한다.

webapp 디렉터리 생성, WEB-INF 디렉터리도 생성해야 한다.

 

JSP를 한 번쯤 사용했다면, 'jsp는  WEB-INF 안의 내용을 불러온다.'라고 배운 적이 있을 것이다.

그런 의미로, JSP를 사용하기 위해서는 기본적으로 위와 같이 설정해야 한다.

 

  Gradle 설정

Gradle 설정할 경우 두 가지 설정이 가장 많이 쓴다.

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'

 Gradle 사용할 경우,  두 가지의 설정은 반드시 해야 한다.

JSTL은 JSP사용을 좀 더 매끄럽게 하기 위함이므로, 반드시 사용할 필요는 없다.

 

 

  Maven 설정

<dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
	<scope>provided</scope>
</dependency>
        
<!-- jstl 라이브러리 -->
<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
</dependency>

 Maven으로 할 경우에는 위와 같이 설정하면 된다.

 

JSTL은 JSP의 사용을 좀 더 매끄럽게 하기 위함이므로, 반드시 사용할 필요는 없다.

 

 

  application.properties 설정

spring.mvc.view.prefix=/WEB-INF/
spring.mvc.view.suffix=.jsp

 jsp를 불러올 때 기본 설정이다.

jsp를 불러올 때, 경로를 생략하는 역할을 하고 있으며 또한 확장자를 생략함으로써, SpringBoot에서 Page의 이동을 가시성 있게 보여준다.

 

 

이를 통한 예시는 아래와 같다.

 

Controller 설정이다.

@Controller
public class MainController {

    @GetMapping("/")
    public String default01() {

        System.out.println("main");

        return "main";
    }
}

컨트롤러를 불러오기 위해 임의의 값을 설정하였다.

여기서 주의점은 return의 결과이다.

 

type은 기본적으로 String 형식을 사용하고 있으며, String의 Value값이 불러올 jsp의 위치이다.

 

return에 main이 적혀 있으므로, /WEB-INF/main.jsp를 불러온다.

여기서 application.properties에서 prefix와 suffix를 설정했으므로 자동으로 위를 표현한다.

 

이를 절대 경로로 정의할 수도 있다.

 

 

  마무리

 views 안을 사용하기 위해서는 prefix를 설정 잘하면 된다.

 

처음에는 왜 안됐는지는 정확히 모른다. Build Path문제인지... Update 문제인지...

다만 확실한 것은 위의 코드로는 된다는 것이고.

 

안 될 때는 그냥 재부팅해보는 것도 마음 편할 수 있다는 점이다.

 

 

반응형

댓글

Designed by JB FACTORY