보통 이런 식으로 웹 화면을 나눠서 쓸 것이다.
보통 body에 들어갈 페이지만 바뀌는데...
효과적으로 쓰는 프레임 관련 프레임워크가 있다.
tiles 2 라는 스트러츠쪽 소속 프로젝트이다. (처음에는 소속이었으나 지금은 분리되어 독립적이다.
프레임워크를 쓰던 안쓰던 쓸수 있단 얘기다)
위와 같은 화면은 이미 tiles 2 를 사용하여 만든 내용인데...
돌아갈 수 있는 소스를 보겠다.
/WEB-INF/web.xml 파일 내용
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="rsms_web" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_3.xsd"
version="2.3">
<display-name>testWeb</display-name>
<servlet>
<servlet-name>tiles</servlet-name>
<servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
<init-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles-defs.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet>
<servlet-name>tiles-dispatcher</servlet-name>
<servlet-class>org.apache.tiles.web.util.TilesDispatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>tiles-dispatcher</servlet-name>
<url-pattern>*.tiles</url-pattern>
</servlet-mapping>
</web-app>
uri-pattern 을 *.tiles 로 설정하여 아래 tiles-defs.xml 에서 설정한 definition 페이지들을
웹브라우저에서 definition 태그의 name 어트리뷰트를 사용하여..
ip:port/context root/hello.tiles 형식으로 접근 할 수 있다.
/WEB-INF/tiles-defs.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="hello" template="/jsp/layout.jsp">
<put-attribute name="title" value="첫번째 페이지"></put-attribute>
<put-attribute name="header" value="/jsp/header.jsp"></put-attribute>
<put-attribute name="menu" value="/jsp/menu.jsp"></put-attribute>
<put-attribute name="body" value="/jsp/body.jsp"></put-attribute>
<put-attribute name="footer" value="/jsp/footer.jsp"></put-attribute>
</definition>
</tiles-definitions>
여기서는 쓰지 않았지만 이 방식의 좋은 점은...
body 만 바꾸고 싶다면
<definition name="hello2" template="/jsp/layout.jsp" extends="hello">
<put-attribute name="title" value="두번째 페이지"></put-attribute>
<put-attribute name="body" value="/jsp/body2.jsp"></put-attribute>
</definition>
요런식으로 자바의 extends 흉내를 내서 코드를 확 줄일 수 있다는 데 있다.
각각의 jsp 파일들을 원하는 내용을 쓰면 되기 때문에 따로 올려놓진 않는다.
jar 파일들은 첨부되어 있다.
'JSP' 카테고리의 다른 글
[ JSP ] no-cache 사용법 (0) | 2012.04.24 |
---|---|
[ JSP ] JSTL Core 사용법 (0) | 2012.01.21 |
[ JSP ] JSP 엑셀 다운로드시 한글 깨질 때 (0) | 2009.10.26 |
[ JSP ] JSP 엑셀 다운 로드시 숫자형을 문자형으로 바꾸어서 출력 (1) | 2009.10.26 |
[ JSP ] jsp 에서 엑셀 (excel) 파일 다운로드 받기 (0) | 2009.06.18 |
댓글