관리 메뉴

거니의 velog

(8) 타일즈 사용하기 본문

Java_Spring Boot

(8) 타일즈 사용하기

Unlimited00 2023. 11. 28. 17:20

* 이전에 살펴본 회원 관리 기능에 타일즈 기능을 적용해 보자.


(1) 회원 기능에 타일즈 적용하기

* 타일즈 기능을 사용하려면 먼저 라이브러리를 설정해야 한다.

1. build.gradle에 타일즈 라이브러리를 설정한다. 설정을 추가한 후 반드시 Gradle을 리프레시하는 것을 잊지 말자.

buildscript {
	ext {
		springBootVersion = '2.0.6.RELEASE'
	}
	repositories {
		mavenCentral()
	}
	dependencies {
		classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
	}
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

group = 'com.myboot03'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8

repositories {
	mavenCentral()
}

dependencies {

	implementation('org.springframework.boot:spring-boot-starter-jdbc')
	implementation('org.springframework.boot:spring-boot-starter-web')
	implementation('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
	implementation('org.apache.tomcat.embed:tomcat-embed-jasper') // JSP를 사용하기 위해 반드시 추가한다.
    implementation('javax.servlet:jstl:1.2') // JSP를 사용하기 위해 반드시 추가한다.
	implementation fileTree(dir: 'libs', include: ['*.jar']) // 프로젝트 루트 디렉터리의 libs 디렉터리의 jar 파일을 읽어 들인다.
    implementation files('libs/ojdbc6.jar') // 오라클 드라이버를 로컬 리포지토리에 추가한다.
    implementation('org.apache.tiles:tiles-jsp:3.0.4') // 타일즈 기능을 사용하기 위해 추가한다.
    
	runtimeOnly('com.h2database:h2')
	testImplementation('org.springframework.boot:spring-boot-starter-test')

}

2. /WEB-INF 하위에 tiles 폴더를 만든 후 이전에 사용한 tiles_member.xml을 복사해 붙여 넣는다.

3. 타일즈 설정 파일에서 지정한 경로에 이전에 사용한 공통 레이아웃에 사용하는 JSP 파일들을 복사해 붙여 넣는다. 그리고 image 폴더도 src/main/resources/static 폴더 안에 복사해 붙여 넣는다.

4. src/main/java/ 폴더 아래에 common.tiles 패키지를 만든 후 타일즈 설정 클래스인 TilesConfig.java를 생성한다. 이처럼 그레이들 기반 프로젝트에서는 자바 클래스를 이용해 타일즈 기능을 설정한다.


< 자바 클래스에서 사용되는 설정 애너테이션 >

애너테이션 설명
@Configuration 자바 클래스에 적용해 Spring 설정 클래스로 지정한다.
@Bean 자바 클래스의 메서드에 적용해 Bean을 반환하도록 지정한다.

@Configuration을 이용해 설정 클래스로 지정한다.

(1) 첫 번째 @Bean은 다음 코드와 같은 의미이다.

<bean id="tilesConfigurer" class="com.myboot03.common.TilesConfigurer" />

(2) 두 번째 @Bean은 다음 코드와 같은 의미이다.

<bean id="tilesViewResolver" class="com.myboot03.common.tilesViewResolver" />

5. TilesConfig 클래스를 다음과 같이 작성한다.

package com.myboot03.common.tiles;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.view.tiles3.TilesConfigurer;
import org.springframework.web.servlet.view.tiles3.TilesView;
import org.springframework.web.servlet.view.tiles3.TilesViewResolver;

@Configuration // 설정 클래스로 지정한다.
public class TilesConfig {
	
	@Bean // id가 tilesConfigurer인 빈을 생성한다.
	public TilesConfigurer tilesConfigurer() {
		final TilesConfigurer configurer = new TilesConfigurer();
		configurer.setDefinitions(new String[] { "WEB-INF/tiles/tiles_member.xml" }); // 한 개의 타일즈 설정 파일을 읽어 들인다.
		// configurer.setDefinitions(new String[]
		// {"WEB-INF/tiles/tiles_member.xml","WEB-INF/tiles/tiles_board.xml"}); // 여러 개의 타일즈 설정 파일을 읽어 들인다.
		configurer.setCheckRefresh(true);
		return configurer;
	}

	@Bean // id가 tilesViewResolver인 빈을 생성한다.
	public TilesViewResolver tilesViewResolver() {
		final TilesViewResolver resolver = new TilesViewResolver();
		resolver.setViewClass(TilesView.class);
		return resolver;
	}
	
}

6. 프로젝트를 실행하고 다음의 주소로 요청하여 결과를 확인한다.

- http://localhost:8090/member/listMembers.do