struts로 검색한 결과 :: 시소커뮤니티[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로 검색한 결과
등록일:2008-03-16 10:00:33
작성자:
제목:DynaActionForm 클래스


DynaActionForm  클래스

ActionForm을  이용하면  개발  시간을  줄일  수  있는  이점이  있지만  심각한  단점이  있습니다.  그  단점이라  함은  Action이  늘어  날  때  마다  엄청난  ActionForm  클래스가  생겨나야  한다는  점  입니다.

비록  ActionForm을  여러  페이지에서  공유  한다고  하더라도  유지보스  역시  어려워지게  되는  것  입니다.  그래서  머리를  좀  써  ActionForm은  하나만  만들고  그  안에  모든  속성의  처리를  끝내  버리는  사람들도  있습니다.  그러나  이  방식은  여러  명이  공동  프로젝트를  수행  하는  경우엔  이  클래스에  대해  경합이  발생  하므로  좋지  못합니다.

그리고  또한  HTML폼으로부터  얻어내는  프로퍼티를  ActionForm안에  정의  해야  한다는  것이고  추가  되거나  제거  되는  경우엔  ActionForm이  다시  컴파일  되어야  한다는  것  입니다.

이러한  이유  때문에  동적이며  애플리케이션에서  ActionForm의  실제  구현  클래스를  만들  필요가  없는  새로운  ActionForm    클래스가  스트럿츠  프레임워크에  추가되게  된  것  입니다.

동적인  ActionForm과  그렇지  않은  ActionForm의  차이는  ActionForm이  정의하는  프로퍼티,  validate()  메소드,  reset()  메소드  입니다.


---------------------------
동적인  ActionForm  설정
---------------------------

DynaActionForm을  사용하기  위해서는  일반  ActionForm과  같이  설정  파일에  <form-bean>요소를  추가해야  합니다.

설정  파일에서의  차이점은  동적인  ActionForm은  프로퍼티를  갖기  위해  내부에  form-property를  하나  이상  포함해야  한다는  것  입니다.  DynaActionForm은  프로퍼티의  키/값  쌍을  저장하기  위해  java.util.Map을  사용  합니다.  즉  프러임워크에서  form-property  요소를  Map으로  로딩하여  설정  합니다.

아래는  그  설정  예  입니다.

<form-beans>
<form-bean
name="loginForm"
type="org.apache.struts.action.DynaActionForm">
<!--  Specify  the  dynamic  properties  of  the  form  -->
<form-property    name="email"  type="java.lang.String  "/>
<form-property  name="password"  type="java.lang.String  "/>

<!--  You  can  also  set  the  initial  value  of  a  property  -->
<form-property    initial="false"  name="rememberMe"    type="java.lang.Boolean  "/>
</form-bean>
<form-beans>


이와  같이  설정하면  이  ActionForm을  동적으로  만들어  주는데  런타임에  DynaAction클래스의  인스턴스를  생성  하고  설정된  프로퍼티를  위한  get,  set  함수를  제공해  줍니다.  새  프로퍼티를  추가  하기  위해서는  설정만  수정하면  자동으로  다  해결  되므로  소스코드를  수정  할  필요는  없습니다.

ActionForm의  reset()  메소드는  기본적으로  아무  동작도  하지  않았지만  DynaActionForm의  reset()  메소드는  모든    프로퍼티를  초기  값으로  초기화  합니다.


===========================================================

[예]

-----------------
설정  파일에서…
-----------------
<form-beans>
<form-bean  name="CalcForm"  type="org.apache.struts.action.DynaActionForm">                                    
                        <form-property  name="s1"  type="java.lang.String"  />                                        
                        <form-property  name="s2"  type="java.lang.String"  />    
                </form-bean>
        </form-beans>

----------------------------------
Action  클래스에서    값을  읽어  오기
----------------------------------

DynaActionForm  dForm  =  (DynaActionForm)form;
                      
int  s1  =  Integer.parseInt(dForm.get("s1").toString());
int  s2  =  Integer.parseInt(dForm.get("s2").toString());

[출처]  DynaActionForm  클래스|작성자  어린양이