struts-config.xml로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

struts-config.xml로 검색한 결과
등록일:2008-03-16 00:27:55
작성자:
제목:struts tiles 공부해보자..


일단 tilse를 무작정 써보자.. 이해는 그담에 한다..

tiles는 기본적으로 두가지로 이루어진다. 레이아웃과 Tiles Definition이다. 여기서 레이아웃은 HTML의 main페이지처럼 반복적으로 사용되는 부분이 어디에 위치해야 할지를 정의한 JSP파일이다. 그리고 Tiles Definition은 레이아웃에서 반복적으로 사용되는 부분들의 실제 HTML 혹은 JSP파일을 지정하는 설정이다. 보통 XML을 사용한다.

 

사용하는 과정을 살펴봐야겠다..

1. struts-config.xml에 Tiles Plugin을 설정하여 타일즈를 사용할 수 있게 한다.

(message-resources다음에 위치시키면 되겠다...)

    <plug-in className="org.apache.struts.tiles.TilesPlugin">
      <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

                                                                            (WEB-INF밑의 상대경로다.)
      <set-property property="definitions-debug" value="2"/>
      <set-property property="definitions-parser-details" value="2"/>
      <set-property property="definitions-parser-validate" value="true"/>
      <!--<set-property property="stopOnFirstError" value="false" />-->
  </plug-in>

 

2. Layout을 만들자.

<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/WEB-INF/struts-tiles.tld" prefix="tiles" %>

( /WEB-INF/struts-tiles.tld를 참고하여 prefix인 tiles라는 태그로써준다.)

<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"/>
  <title><tiles:getAsString name="title"/></title>(title에 struts-tiles.tld에 설정해놓은 title을 
 </head>                                                        스트링으로 얻어와 보여준다.)
      <body>
  <h1><tiles:getAsString name="title"/></h1>  (위와 같음)
  <table border="1" width="100%">
    <tr>
      <td colspan="2"><tiles:insert attribute="header"/></td>
    </tr>                   (include와 같은 역할. struts-tiles.tld에 설정해 놓은 header부분을
    <tr>                                 가져온다.)
      <td width="140"><tiles:insert attribute="menu"/></td>(위와같음)
      <td><tiles:insert attribute="body"/></td> (위와같음)
    </tr>
    <tr>
      <td colspan="2"><tiles:insert attribute="footer"/></td>  (위와같음)
    </tr>
  </table>
   </body>
</html>

 

3. Tiles Definition 설정하기. (이것은 레이아웃과 struts.xml을 연결해 주는 역할을 한다.)

<?xml version="1.0" encoding="ISO-8859-1" ?>

 <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">

 

<tiles-definitions>

definition은 레이아웃 내용채우기 설정의 한 단위이다. 여기서 name값은 struts.xml에서 보낸 forward값을 받게 되겠다. 그 밑에 put의 네임에는 레이아웃.jsp에서 지정한 각 단위의 이름이 들어가고 value에는 실제 페이지의 경로가 들어가게 되겠다.
    <definition name=".layout-main" path="/classicLayout.jsp">
        <put name="title"  value="the First myTiles" />
        <put name="header" value="/header.jsp" />
        <put name="menu"   value="/menu.jsp" />
        <put name="footer" value="/footer.jsp" />
        <put name="body"   value="/body.jsp" />
    </definition>
여 기서도 .layout-menu1이라는 forward값을 받는다. 여기서는 extend라는 것이 들어가게 되는데 여기에서 tiles의 장점을 살필수 있겠다. 이것은 바로 확장이라는 의미다. 즉 확장하여 바뀌지 않는 부분은 부모 definition을 사용해서 레이아웃에 삽입되어 들어갈 내용을 지정할 수 있다는 것이다. 여기서 extends속성에는 부모의 name값이 들어가게 되겠다.
    <definition name=".layout-menu1" extends=".layout-main">
        <put name="body"   value="body-menu1.jsp" />
    </definition>
    <definition name=".layout-menu2" extends=".layout-main">
        <put name="body"   value="body-menu2.jsp" />
    </definition>

</tiles-definitions>

 

4. Tiles를 사용하기 위해 struts-config.xml에 action-mapping를 해줘야겠다.

<action path="/main"                       forward=".layout-main"/>

       (main.do이라는 값으로 들어오면)  (tiles-defs.xml에 definition name의 값으로

                                                           .layout-main이라는 값을 보낸다.)

<action path="/menu1" forward=".layout-menu1"/>

<action path="/menu2" forward=".layout-menu2"/>

 

5. 각 jsp의 소스와 결과값.

header.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<h2 align="center">Struts Tilesの例です。頑張ってください。</h2>

footer.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<div align="center" style="background:yellow;">our company。</div>

menu.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<ul>
  <li><html:link action="/main">first Monitor</html:link>
  <li><html:link action="/menu1">menu1</html:link>
  <li><html:link action="/menu2">menu2</html:link>

    (여기에서 link로 menu1과 menu2를 action값으로 보낼수 있다.)
</ul>

body.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<b> 初めてのbody画面。 </b>

body-menu1.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<br/><br/>
menuの第1です。

body-menu2.jsp

<%@ page contentType="text/html; charset=Shift_JIS"%>
<br/><br/>
menuの第2です。

 

결과