Writing /volume1/Web/Public/dokuwiki/data/log/deprecated/2024-11-15.log failed
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
study:jsf:migration [2008/04/25 13:22] – banana | study:jsf:migration [2008/04/26 12:50] (現在) – banana | ||
---|---|---|---|
行 26: | 行 26: | ||
%%FacesServlet%%이 가장 먼저 로드되도록 < | %%FacesServlet%%이 가장 먼저 로드되도록 < | ||
- | |||
- | ====== Migration From struts application to JSF application ====== | ||
- | Struts Framework로 개발된 application을 JSF application으로 이관하는 과정을 소개한다.\\ | ||
- | 처음으로 해야 할 일은 적절한 라이브러리들을 설정하는 것이다.\\ | ||
- | |||
- | **1.Struts-Faces 라이브러리를 애플리케이션에 추가:** Struts-Faces 라이브러리는 Struts-faces.jar라고 하는 | ||
- | JAR파일에 포함돼있다.\\ Struts-Faces 배포판으로부터 이 파일을 애플리케이션의 WEB-INF/lib 디렉토리에 복사하기 바란다. | ||
- | |||
- | **2.JSF 라이브러리를 애플리케이션에 추가 :** 참조 구현체(Sun RI)의 경우에는 jsf-api.jar와 jsf-impl.jar를 | ||
- | 사용하면 된다.\\ 이 두 파일을 애플리케이션의 WEB-INF/lib 디렉토리에 복사하기 바란다. | ||
- | |||
- | **3.JSTL 라이브러리를 애플리케이션에 추가:** 이 라이브러리는 공식 JSTL 배포 사이트 또는 JSF 구현체로부터 얻을 수 있다.\\ | ||
- | JSTL JAR 파일들(jstl.jar 및 standard.jar)을 애플리케이션의 WEB-INF/lib 디렉토리에 복사하기 바란다. | ||
- | |||
- | **4.JSF 컨트롤러 서블릿을 웹 애플리케이션 배치 설명자(WEB-INF/ | ||
- | 필요하다.\\ | ||
<code xml> | <code xml> | ||
行 54: | 行 38: | ||
**5.JSF 컨트롤러 서블릿을 위한 서블릿 맵핑을 웹 어플리케이션 배치 설명자(WEB-INF/ | **5.JSF 컨트롤러 서블릿을 위한 서블릿 맵핑을 웹 어플리케이션 배치 설명자(WEB-INF/ | ||
+ | |||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 이는 접두어 맵핑의 예이지만, | ||
+ | |||
+ | **6.Struts-Faces의 %%RequestProcessor%%를 Struts 설정 파일(WEB-INF/ | ||
+ | ((만약 여러분만의 %%RequestProcessor%%를 개발했다면, | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | 만약 Tiles를 사용하지 않는다면 **%%FacesTilesRequestProcessor%%**를 사용하면 된다. | ||
+ | <code xml> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Example of Struts-JSF Integration ===== | ||
+ | Struts application을 JSF로 이관하는 과정을 이해하기 위해 간단한 logon화면을 보여주는 jsp를 살펴보자. | ||
+ | 현재의 struts버전은 대략 다음과 같은 모습이다. | ||
+ | |||
+ | **Listing 1: A simple Struts-based logon JSP** | ||
+ | |||
+ | <code html> | ||
+ | <%@ taglib uri="/ | ||
+ | <%@ taglib uri="/ | ||
+ | |||
+ | < | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | < | ||
+ | <table border=" | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | **Step 1: Change the tag library declarations** 제일 처음에 해야 할 작업은 tag library 선언부를 Struts-JSF tag library로 바꾸는 것이다.\\ | ||
+ | | ||
+ | |||
+ | <code html> | ||
+ | <%@ taglib uri=" | ||
+ | <%@ taglib uri=" | ||
+ | <%@ taglib uri=" | ||
+ | |||
+ | < | ||
+ | <s:html locale=" | ||
+ | </ | ||
+ | |||
+ | **Step 2: Modify declarations for localized messages** 두번째 단계는 < | ||
+ | basename을 지정하지 않으면 기본으로 저장되어있는 application의 기본 %%MessageResources%% 번들이 로드된다. | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | 일단 로드되면 모든 컴포넌트로부터 messages를 키로 JSF Expression language형식으로 접근할 수 있다.\\ | ||
+ | 다음은 title을 %%ResourceBundle%%을 이용하여 지역화한 예이다. | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | **Step 3: Change tags for error and form components** 세번째는 validation error를 보여주는 < | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | <s:form action="/ | ||
+ | </ | ||
+ | |||
+ | **Step 4: Using JSF EL for input fields** 네번째 단계는 Struts form tag를 해당 JSF form tag로 교체하는 작업이다. | ||
+ | logonForm이라는 이름으로 %%ActionForm%%이 struts-config.xml에 저장돼있다고 가정한다. | ||
+ | |||
+ | <code html> | ||
+ | < | ||
+ | ... | ||
+ | < | ||
+ | </ | ||
+ | |||
+ | **Step 5: Change tags for submit and reset buttons** 마지막으로 button 의 label을 지역화한다. 이때 %%HtmlCommandButton%% 컴포넌트에 action속성이 지정되있지 않는 것에 눈여겨 보기 바란다. 이는 버튼이 클릭되면 < | ||
+ | |||
+ | 지금까지의 교체작업으로 바뀐 완성된 JSP는 다음과 같다.\\ | ||
+ | |||
+ | **Listing 2: Example logon JSP after migration using the Struts-Faces Integration Library** | ||
+ | |||
+ | <code html> | ||
+ | <%@ taglib uri=" | ||
+ | <%@ taglib uri=" | ||
+ | <%@ taglib uri=" | ||
+ | < | ||
+ | < | ||
+ | <s:html locale=" | ||
+ | < | ||
+ | < | ||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | <s:form action="/ | ||
+ | <table border=" | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | <tr> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | <td align=" | ||
+ | < | ||
+ | </td> | ||
+ | </tr> | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== Reference ===== | ||
+ | - JSF In Action, Kito D. Mann | ||
+ | - [[http:// | ||
+ | |||
+ | |||
+ |