tiles :: 2.2.2 버전 web.xml 설정 세 가지 방법
Language/JSP 2012. 10. 29. 11:181. web.xml 의 <servlet> 태그 활용
아래는 web.xml 에 추가되야 하는 부분의 예제 코드이다.
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>
org.apache.tiles.definition.DefinitionsFactory.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-hello.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
물론 여기서 태그 설정 파일(여기서는 tiles-hello.xml) 이 WEB-INF 폴더 밑에 있어야 한다.
그러므로 이 방법을 선택할 분은 <param-value> 이 부분을 자신이 설정한 이름에 맞게
바꿔 주면 된다.
2. web.xml 의 <listener> 와 <context-param> 사용하기
<listener>
<listener-class>org.apache.tiles.web.startup.TilesListener</listener-class>
</listener>
<context-param>
<param-name>
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
</param-name>
<param-value>
/WEB-INF/tiles-hello.xml
</param-value>
</context-param>
1번 방법과 큰 차이는 없으며 여기서도 역시 <param-value> 의 몸체에 해당하는 부분만
자신이 설정한 tiles 설정 파일의 이름에 맞게 바꿔 주면 된다.
3. 이제 마지막 .. 세 번째 방법.. 이거 때문에 삽질 좀 했다.
먼저 여기서는 두 개의 자바 파일이 필요하다. 아래 두 개의 자바 파일 중 첫 번째 꺼를 먼저
컴파일 한 후 두 번째꺼를 컴파일 해줘야 한다.
첫 번째 자바 파일(TestTilesContainerFactory.java)
첫 번째 자바 파일에서 사용자가 설정한 태그 파일(여기서는 /WEB-INF/tiles-hello.xml) 를
추가 해주는 것을 확인할 수 있다.
package tiles;
import java.io.IOException;
import java.util.List;
import java.util.ArrayList;
import java.net.URL;
import org.apache.tiles.factory.BasicTilesContainerFactory;
import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.context.TilesRequestContextFactory;
import org.apache.tiles.definition.DefinitionsFactoryException;
public class TestTilesContainerFactory extends BasicTilesContainerFactory {
protected List<URL> getSourceURLs(TilesApplicationContext applicationContext, TilesRequestContextFactory contextFactory) {
List<URL> urls = new ArrayList<URL>();
try {
urls.add(applicationContext.getResource("/WEB-INF/tiles-hello.xml"));
} catch (IOException e) {
throw new DefinitionsFactoryException("Cannot load definition URLs", e);
}
return urls;
}
}
두 번째 자바 파일(TestTilesListener.java)
package tiles;
import tiles.TestTilesContainerFactory;
import org.apache.tiles.TilesApplicationContext;
import org.apache.tiles.web.startup.AbstractTilesListener;
import org.apache.tiles.startup.TilesInitializer;
import org.apache.tiles.startup.AbstractTilesInitializer;
import org.apache.tiles.factory.AbstractTilesContainerFactory;
public class TestTilesListener extends AbstractTilesListener {
@Override
protected TilesInitializer createTilesInitializer() {
return new TestTilesListenerInitializer();
}
private static class TestTilesListenerInitializer extends AbstractTilesInitializer {
@Override
protected AbstractTilesContainerFactory createContainerFactory(TilesApplicationContext context) {
return new TestTilesContainerFactory();
}
}
}
이 두 자바 파일을 컴파일 하는데 필요한 라이브러리는 아래와 같다. 나는 이 라이브러리를
WEB-INF\lib 밑에 놔뒀다.
tiles-servlet-2.2.2.jar
tiles-api-2.2.2.jar
tiles-core-2.2.2.jar
servlet-api.jar
그래서 내가 cmd 창에서 했던 명령어는 아래와 같다.
C:\Tomcat 6.0\webapps\JSP2\WEB-INF>javac -classpath lib\tiles-servlet-2.2.2.jar -d classes src\tiles\TestTilesContainerFactory.java
C:\Tomcat 6.0\webapps\JSP2\WEB-INF>javac -classpath classes;lib\servlet-api.jar;lib\tiles-servlet-2.2.2.jar;lib\tiles-api-2.2.2.jar;lib\tiles-core-2.2.2.jar -d classes src\tiles\TestTilesListener.java
참고로 두 자바 파일 모두 WEB-INF/src/tiles/ 밑에 존재하고 첫번째 자바 파일을 컴파일 하면
클래스 파일은
WEB-INF/classes/tiles/TestTilesContainerFactory.class
에 생성된다.
그러므로 두 번째 컴파일 할 때
classpath classes;
라고 되 있는 것은 첫 번째 컴파일된 클래스 파일을 두 번째 자바 파일이 import 하기 때문에
추가하고 있는 것이다.
이렇게 두 자바 파일 모두
WEB-INF/classes/tiles/
밑에 생성되고
이제 web.xml 은 아래와 같이 추가 해주면 된다.
<listener>
<listener-class>tiles.TestTilesListener</listener-class>
</listener>
tiles.TestTilesListener 여기서 tiles 는 패키지 명이고 TestTilesListener 가
우리가 작성한 두번째 클래스 이름이다.
가장 중요한 것이 web.xml 이므로 이 부분을 잘 확인해 보기 바란다.
출처 - http://blog.naver.com/myca11?Redirect=Log&logNo=80127196294
'Language > JSP' 카테고리의 다른 글
Spring MVC (0) | 2012.10.31 |
---|---|
MyBatis-Spring (0) | 2012.10.31 |
struts2 튜토리얼 (0) | 2012.10.23 |
태그라이브러리 URI (0) | 2012.10.23 |
[centOS] apache2.2 + tomcat6 (yum 설치 성공 통합 정리) (0) | 2012.10.12 |