您的位置:首页 > 编程语言 > Java开发

【4】SSH整合-加入struts校验框架

2009-07-24 21:31 141 查看
struts2为我们提供了一套校验的框架,只要使用即可

在action下新建同名文件: XXXAction-validation.xml ,往当中写入相应的校验信息,struts在页面提交的时候会自动在此文件当中去寻找相应的信息进行匹配

一个文件范例如下:SaveUserAction-validation.xml

<?xml version="1.0" encoding="UTF-8"?>

<!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="user">

<field-validator type="visitor">

<param name="context">user</param>

<param name="appendPrefix">true</param>

<message>user's </message>

</field-validator>

</field>

</validators>

此文件中只配置了采用visitor的类型进行校验,如出现错误信息会在信息前添加user‘s 字段

然后在User类的文件夹下创建关于User的具体校验信息

范例如下:User.hbm.xml,注意文件名一定要符合规范

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

<class name="oa.sean.bean.User" table="users">

<id name="id" type="java.lang.Integer" column="id">

<generator class="increment"></generator>

</id>

<property name="firstname" type="string" column="firstname" length="50"></property>

<property name="lastname" type="string" column="lastname" length="50"></property>

<property name="age" type="java.lang.Integer" column="age" ></property>

</class>

</hibernate-mapping>

这里在强调一点:对于有状态的Action在配置的时候要将其配置成prototype,否则将会出现系列问题

典型的就是配置好之后第一次输入错误将正确的返回错误信息,第二次依然返回错误信息而无法提交

因为action默认的是singleton类型,所有只生成一个实例,而错误信息只要第一次产生便会存在

就算第二次输入的是正确的信息,依然有第一次的fielderror存在,因此表单仍然不会提交

至此,能为表单提供一个符合自己要求的校验框架了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: