우선, 스프링 부트에서 jsp를 사용하기 전에 알아야 할 것은 스프링 부트는 jsp를 공식적으로 지원하지 않고 권장하지도 않는다는 것입니다. jsp를 사용하게 되면 jar 패키징이 안 되어 war로만 패키징 할 수 있기 때문에 이 점을 주의해야 합니다. * 정확하게 말하면 jar로 패키징은 가능하지만 jar로 패키징 시 jsp 파일은 실행되지 않습니다.

 

1) build.gradle의 dependencies 사이에 jsp와 jstl이 사용 가능하도록 의존성을 추가합니다.

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

 

2) application.properties에 jsp 관련 설정을 추가합니다.

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

3) src/main 밑에 webapp/WEB-INF 디렉토리를 추가합니다.

 

4) 3에서 만든 경로 밑에 jsp 파일을 생성하면 controller에서 return 가능합니다.

1. 인텔리제이 설치

 

 

 

2. MariaDB 설치

 

 

 

3. MySQL Workbench 설치

 

 

build.gradle 하단에 아래 코드 추가

 

def frontendDir = "$projectDir/src/main/reactfront"

sourceSets {
    main {
        resources { srcDirs = ["$projectDir/src/main/resources"]
        }
    }
}

processResources { dependsOn "copyReactBuildFiles" }

task installReact(type: Exec) {
    workingDir "$frontendDir"
    inputs.dir "$frontendDir"
    group = BasePlugin.BUILD_GROUP
    if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
        commandLine "npm.cmd", "audit", "fix"
        commandLine 'npm.cmd', 'install' }
    else {
        commandLine "npm", "audit", "fix" commandLine 'npm', 'install'
    }
}

task buildReact(type: Exec) {
    dependsOn "installReact"
    workingDir "$frontendDir"
    inputs.dir "$frontendDir"
    group = BasePlugin.BUILD_GROUP
    if (System.getProperty('os.name').toLowerCase(Locale.ROOT).contains('windows')) {
        commandLine "npm.cmd", "run-script", "build"
    } else {
        commandLine "npm", "run-script", "build"
    }
}

task copyReactBuildFiles(type: Copy) {
    dependsOn "buildReact"
    from "$frontendDir/build"
    into "$projectDir/src/main/resources/static"
}

 

jar 사용

 

jar로 라이브러리를 이용할 경우 하단에 첨부된 파일을 라이브러리 폴더에 넣어줍니다.

jstl-1.2.jar
0.40MB

 

스프링(그래들)

 

build.gradle의 dependencies 사이에 의존성을 추가해줍니다.

 

dependencies {
 
     implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
    
}

 

스프링(메이븐)

 

pom.xml의 <dependencies></dependencies> 사이에 의존성을 추가해줍니다.

 

<dependencies>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

</dependencies>

 

 

JSP에서 JSTL 사용

 

최상단에 이렇게 라이브러리를 추가하여 JSP 문서에서 JSTL 태그를 사용할 수 있습니다.

 

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

 

 

 

 

개발 시 prefix와 suffix는 각각 경로 설정, 확장자 설정하는데 주로 사용됩니다.

스프링부트 application.properties 설정 예시

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

 

위처럼 스프링부트에서 jsp를 사용하기 위해 사용하기도 하고 다양한 이유에서 사용되는 이 두 키워드의 의미는 영어에서 각각 prefix : 접두사, suffix : 접미사를 의미합니다.

 

+ Recent posts