[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