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

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