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 00:35:20
작성자:
제목:Struts에서 ActionForm 처리


struts에서  ActionForm  처리

ActionForm  객체는  클라이언트에서  입력한  데이터를  비즈니스  계층으로  전달하는  역할을  합니다.  struts  Framework에서는  사용자의  입력  화면에서  입력한  데이터를  자동으로  모아  ActionForm  인스턴스의  setter를  이용해  설정하며  이를  통해  비즈니스  계층으로  데이터를  전달  할  수  있습니다.

여기서  한가지  주의  할  점은  ActionForm을  비즈니스  계층으로  직접  전달  하기  보다는  적절한  DTO(Data  Transfer  Object)를  생성하는  것이  훨씬  효율적  입니다.

스트럿츠에서는  다음과  같이  ActionForm  을  처리  합니다.

1.                Action의  매핑  정보를  확인  하고  Action이  설정  되어  있는지  확인  합니다.  Action  매핑의  name  속성에  해당  하는  <form-bean  >  매핑이  있는지  확인  하는  겁니다.

<!--  ==========  Form  Bean  Definitions  ================================  -->
        <form-beans>
                <form-bean  name="loginForm"  type="login2.LoginForm">                                      
                        <form-property  name="pwd"  type="java.lang.String"  />
                        <form-property  name="id"  type="java.lang.String"  />                        
                </form-bean>                        
        </form-beans>



<!--  ==========  Action  Mapping  Definitions  ============================  -->
        <!--valiedate를  true라고  함으로써  LoginForm의  validate가  호출됩니다.            -->
        <action-mappings>
                        <!--  loginAction에  대한  정의  -->
                <action                    
                                path="/LoginSubmit"
                                type="login2.LoginAction"
                        name="loginForm"                                                
                        validate="true"
                        input="/login.jsp"
                />
                
                <!--  logoffAction에  대한  정의  -->
                <action                    
                                path="/logoff"
                                type="login2.LogoffAction"
                        name="logoffForm"                                                
                        validate="false"                    
                />                                            
        </action-mappings>


2.                  메모리에  ActionForm  인스턴스가  있는지  확인하여  이미  만들어진  타입이  같고  scope가  적당  한  것이  있으면  재사용하고  없으면  새로  인스턴스를  생성  합니다.  새  인스턴스를  만드는  경우엔  scope  속성이  있다면  속성에  따른  scope에  저장  합니다.

3.                ActionForm의  reset  메소드를  호출  합니다.
                
                public  void  reset(ActionMapping  mapping,  HttpServletRequest  request)  {
                                pwd  =  "";
                                id  =  "";
                }

4.                ActionForm의  setter를  통해  요청  파라미터  값을  ActionForm에  입력  합니다.

public  void  setId(String  id)  {
                                this.id  =  id;
                }
                
                public  void  setPwd(String  pwd)  {
                                this.pwd  =  pwd;
                }

5.                validate속성이  “true”로  설정  되어  있으면  validate()  메소드를  실행  하고  에러가  있다면  에러를  반환  합니다.

public  ActionErrors  validate(ActionMapping  mapping,  HttpServletRequest  request)  {
                                ActionErrors  errors  =  new  ActionErrors();
                                
                                if((id  ==  null)  ||  (id.length()<1))  {
                                                errors.add("error.id.required",  new  ActionError("error.id.required"));
                                }
                                
                                if((pwd  ==  null)  ||  (pwd.length()<1))  {
                                                errors.add("error.pwd.required",  new  ActionError("error.pwd.required"));
                                }
                                
                                return  errors;                                                
                }


폼  데이터를  전송  하는  모든  HTML  페이지에서  ActionForm  사용해야  하는데  HTML의  폼필드의  이름과  ActionForm의  속성의  이름이  일치한다면  ActionForm을  여러  페이지에서  사용  가능  합니다.

중요한  메소드는  reset(),  validate()  메소드  인데  하나씩  보도록  하죠~

reset()  메소드의  원형은  다음과  같습니다.

public  void  reset(ActionMapping  mapping,  HttpServletRequest  request);

스트럿츠의  ActionForm  클래스의  위  두메소드는  기본적으로  아무  기능도  수행  하지  않으므로  ActionForm을  상속한  하위  클래스에서  필요하다면  재정의(Override)  해야  합니다.

Controller는  요청  파라미터에  있는  ActionForm의  인스턴스에  입력  하기전에  reset()  메소드를  수행  합니다.  결국  reset이라는  것은  초기화의  의미이며  폼빈의  인스턴스를  공유하는  경우엔  중요한  부분  입니다.

Controller  는  요청값들이  ActionForm의  setter에  의해  설정  되면  validate가  “true”로  설정  된  경우에는  valiedate()  메소드를  호출  하는데  이  메소드에서는  사용자의  입력  값에  대한  validation  check를  수행  합니다.  오류가  있다면  ActionError  객체에  담아서  리턴  합니다.  ActionForm에서의  validate()는  비즈니스  로직  이라기  보다는  입력  값의  단순한  검사  정도로  보시면  되며  실제  들어온  값에  대한  논리적인  타탕성등  여러가지  검사를  하기  위해서는  별도의  비즈니스  로직을  만들어  처리해야  합니다.

validate()  메소드의  원형은  다음과  같습니다.

public  ActionErrors  validate(ActionMapping  mapping,  HttpServletRequest  request);

[출처]  [본문스크랩]  struts에서  ActionForm  처리|작성자  어린양이
http://blog.naver.com/dlckdeo81/41814127