初识Struts(三)------ActionForm

ActionForm本质是一个JavaBean,主要功能有:收集数据,数据校验,类型转换,传输对象

 

 

 

 

 

 

    ActionForm的编写要注意下面几点:

1、  自定义的ActionForm必须继承自org.apache.struts.action.ActionForm,基类ActionForm不能实例化

2、  ActionForm中的属性名必须和页面控件输入框的属性名相同,并提供各个属性的getset方法

3、  如果你要求ActionForm 在传递属性到Action之前校验它们,你就必须实现validate方法,在该方法中实现你要进行的验证工作

 

4、  如果想在组装前初始化属性,必须实现 reset 方法, 它会在ActionForm 每次组装前自动被调用  。所以如果你想用一个ActionForm分步收集几个页面的数据,就不能实现原reset方法,而要自定义一个resetField之类的方法初始化属性,并设置该ActionFormscopesession,然后在第一个收集页面相应的Action中调用该resetField方法(不然每个页面提交时都会自动调用reset方法初始化一次,到最后只剩最后面一个页面的数据被收集到了)

 

 

 

ActionForm实例:

package cn.huan.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

/**
 * 登录的ActionForm负责收集数据
 * ActionForm中的属性名必须和表单中输入框的属性名相同
 * @author 刘银环
 *
 */
public class LoginActionForm extends ActionForm {
	
	private String username;
	private String password;
	/**
	 * @return the username
	 */
	public String getUsername() {
		return username;
	}
	/**
	 * @param username the username to set
	 */
	public void setUsername(String username) {
		this.username = username;
	}
	/**
	 * @return the passward
	 */
	public String getPassword() {
		return password;
	}
	/**
	 * @param passward the passward to set
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	/* (non-Javadoc)
	 * @see org.apache.struts.action.ActionForm#reset(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
	 */
	@Override
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		System.out.println("--------LoginAcionForm.reset()--------");
	}
	/* (non-Javadoc)
	 * @see org.apache.struts.action.ActionForm#validate(org.apache.struts.action.ActionMapping, javax.servlet.http.HttpServletRequest)
	 */
	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		System.out.println("-----LoginAcitonForm.validate()");
//		UserManager.getInstance().login(username, password);
		return null;
	}
	

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值