<说明:以后有待整理.......>
1. 关于现有的validator,以及如何编写和插入你自己的validator,请查看Struts文档
Validation验证
我们并不想我们的数据库存在任何的无名氏,所以我们给Form增加一点基本的客户端验证。
在Struts2中,验证可以被放在xml文件里,命名模式为:ActionName-validation.xml,放在与action相同的包路径下。
要给action的特定别名添加验证(比如方法),validation文件的命名必须为:ActionName-alias-validation.xml,
这里的"alias"就是你的action的别名(这里也就是方法名,如"save")。
在src/quickstart/action目录下添加一个名为"PersonAction-save-validation.xml"文件,它的内容如下:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="person.firstName">
<field-validator type="requiredstring">
<message>First name is required!</message>
</field-validator>
</field>
<field name="person.lastName">
<field-validator type="requiredstring">
<message>Last name is required!</message>
</field-validator>
</field>
</validators>
2.action类的继承与实现:
2.1:extends com.opensymphony.xwork2.ActionSupport
主要通过实现ActionSupport就行了,重写execute()方法
2.2:implement Prepareable
通过实现:
com.opensymphony.xwork2.Preparable
接口,实现方法:
e.g:
public void prepare() throws Exception
{
if(id != null)
person = service.find(id);
}
3:struts 的类型转化:
Struts2 使用OGNL进行类型转换。提供基本和常用对象的转换器。
4.绑定值到页面(view):
• Struts 1使用标准JSP机制把对象绑定到页面中来访问。
• Struts 2 使用 "ValueStack "技术,使taglib能够访问值而不需要把你的页面(view)和对象绑定起来。ValueStack策略允许通过一系列名称相同但类型不同的属性 重用页面(view)。