Life cycle of an ActionForm


1. ValidatorForm 클래스를 상속받는다.
validate.xml에서 정의하는데에 한계가 있을 경우에는 reset과 validate메서드를 오버라이딩 하여 다음과 같이 재정의한다. validate.xml에서 정의 가능할 경우에는 위의 두 함수를 오버라이딩 할 필요는 없다.


public class CalenderEditForm extends ValidatorForm{

    public ActionErrors validate(ActionMapping arg0, HttpServletRequest request) {
        ActionErrors errors = super.validate(arg0, request);
        if (errors == null)
            errors = new ActionErrors();
        if (title == null || title.equals("")) {
            errors.add("title", new ActionError("errors.select.required",
                    "タイトル"));
        }
        return errors;
    }
    
    public void reset(ActionMapping mapping, HttpServletRequest request) {
                super.reset(mapping, request);
    }
}


2. reset과 validate메서드를 오버라이딩 한 경우는 application.properties 파일에 다음과 같은 출력할 메세지를 추가한다.

errors.select.required=<li>{0}はかならず選択してください。</li>



3. struts-config.xml 파일에서 액션태그 정의시 validate="true" 로 한다.

    <action
      path="/calendar_write"
      type="action.calender.CalenderWriteAction"
      name="calenderEditForm"
      scope="request"
      input="/view/calender/schedule_edit.vm"
      unknown="false"
      validate="true"
    >
      <forward
        name="next"
        path="/show_calendar_home.do"
        redirect="false"
      />
    </action>



4. validation.xml 에는 다음과 같은 태그를 삽입

  <formset>
          <form name="calenderEditForm">
                  <field property="title" depends="required">
                          <arg0 key="タイトル" resource="false" />
                  </field>
          </form>
  </formset>



5. 액션폼을 사용하는 액션클래스에서는 다음과 같이 클래스 상단에 주석을 작성한다.

/**
* @struts.action
*         path="/calendar_write"
*         name="calenderEditForm"
*         scope="request"
*         validate="true"
*         input="/view/calender/schedule_edit.vm"
* @struts.action-forward
*         name="next"
*         path="/show_calendar_home.do"
*         redirect="true"
*/
public class CalenderWriteAction extends Action




6. vm파일에서는 다음과 같은 코드를 삽입하면 validate실패시 메세지를 출력하게 된다.

#if($errors.exist())
    $!errors.msgs
#end

번호 제목 글쓴이 날짜 조회 수
31 샘플예제 file 황제낙엽 2009.03.02 445
30 A Walking Tour of the Struts 2 MailReader Application (2) 황제낙엽 2008.12.10 314
29 A Walking Tour of the Struts 2 MailReader Application (1) 황제낙엽 2008.12.10 458
28 스트러츠2 샘플 어플리케이션 (MailReader Demonstration Application) file 황제낙엽 2008.11.20 904
27 스트러츠2 실습 예제 모음 (Struts Showcase) 황제낙엽 2008.11.20 58252
26 Struts와 Struts2의 로그인 매커니즘 비교 황제낙엽 2008.10.23 319
25 Struts2 시작하기 황제낙엽 2008.09.22 54365
24 Struts2(스트럿츠2) Feature(특징) 황제낙엽 2008.07.12 351
23 책 Starting Struts 2 - Free Online Version (InfoQ.com) file 황제낙엽 2008.07.11 730
22 스트러츠2 활용 Upload 예제 file 황제낙엽 2007.08.14 344
21 Struts 프레임워크를 이용한 효율적인 개발 전략 황제낙엽 2007.01.30 324
20 MyEclipse를 사용한 Struts 빠른 시작 황제낙엽 2007.01.26 585
19 EJB+JSP를 활용한 J2EE기반의 샘플 프로젝트 (JPetStore-5.0) 황제낙엽 2007.01.18 397
18 EJB+JSP를 활용한 J2EE기반의 샘플 프로젝트 (JPetStore-4.0.5) file 황제낙엽 2005.10.28 491
17 Struts GUI XML 작성 Tool 들 황제낙엽 2006.02.24 486
16 스트러츠로 작성된 웹서점 샘플화일 (Struts+Hsql) 황제낙엽 2005.11.24 305
15 Validation과 Dispatcher액션 황제낙엽 2006.05.22 550
14 폼빈의 Reset 황제낙엽 2006.05.22 371
13 Struts-Config.xml 과 액션과 JSP의 관계 황제낙엽 2006.05.22 327
12 struts-config 설명 및 작성방법 황제낙엽 2006.02.27 331