Struts 1.XX如何编写一个ActionForm Bean

[b]ActionForm的概念:[/b]
ActionForm用于封装用户请求的参数。而请求参数是通过JSP页面的表单域传过来的,因此要保证ActionForm的参数要与提交表单域的提交参数名字相同。

[b]编写一个ActionForm的步骤:[/b]

[size=small][b]第一步:编写ActionForm Java类。[/b][/size]
编写一个ActionForm java类时要继承org.apache.struts.action.ActionForm这个类。
如:
package com.lovo.form;
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm {
...
}

继承org.apache.struts.action.ActionForm后,记得提供与页面表单域的请求参数一一对应的属性。
假如有如下form表单。
...
<form action="login.do">
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" name="subBin">
</form>
...


那么我的ActionForm Java类里面的属性就因该有如下这些:
public class LoginForm extends ActionForm {

private String username;

private String password;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}

并给每个参数提供符合规范的get和set方法。
[color=red]注意:事实上,如果不考虑javabean规范,那么参数本身的名字和提交表单域的参数的名字可以不一样,但只要set方法与提交表单域参数放在一起是符合javabean的set方法的命名规范,也是可以的。[/color]
如:
ActionForm类中有这个属性:private String username1;
假如请求参数为:username
然后ActionForm类中有如下set方法:
public void setUsername(String username) {
this.username1 = username;
}
这样也是可以的,只是一般不会这样做而已。

[b][size=small]第二步:配置struts-config.xml。[/size][/b]

ActionForm java类写完以后,就应该到配置文件了。
示例:
<form-beans>
<form-bean name="loginForm" type="com.lovo.LoginForm"></form-bean>
</form-beans>

ActionForm的配置:
最外面是form-beans,有一个“s”,表示其中可以有多个form-bean。而当中的form-bean的name属性可以随便命名,type属性是配置你写的AciotnForm类的全限定名。
ActionForm配置好以后,事情还没有完,因为现在只是书写了一个ActionForm,并没有纳入实际应用中。接下来就是配置Action了,把写好了的ActionForm绑定到Aciotn身上。如何绑定?示例:
<action-mappings>
<action path="/login"
input="/error.jsp"
type="com.lovo.LoginAction"
name="loginForm"
attribute="loginInfo"
scope="request"
validate="true">
</action>
</action-mappings>
绑定ActionForm的属性是name,这个name的值必须和上面form-bean的name值保持一致,这样Action就绑定了一个form-bean。
input:如果你在ActionForm中重写了,validate这个方法,那么如果在返回ActionErrors中有值,也就是出现了错误,那么它就要跳转到某个页面,这个页面就是用input来指定。
validate:validate用于确定是否在ActionForm中做验证。
scope:是指定包封装好的请求参数放在那个作用域里面,默认是session里面,你也可以使用这个属性把作用域设置成request。
attribute:这个是指定作用域里面封装请求参数的键值对中的key,如果不配置此属性,则默认是你action中的name值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值