1.首先现在/WEB-INF/目录或子目录下面建立一个form.jsp(使用<html:form>)
如果要使用<html:form>标记,需要导入<%@taglib uri = "/WEB-INF/struts-html.tld" prefix = "html"%>
2.现在先不要考虑其他的,先要把这个页面显示出来:
1)
a.要把表单的内容封装起来,我们要写一个继承ActionForm的类,即LoginForm .需要提供getXX()和setXX()方法。
b.在里边要写一些需要封装起来的属性,属性的名字要和form.jsp的表单中每个内容的property一样
2) 配置struts-config.xml文件
a.要写一个继承Action的类ShowFormAction,作用是显示这个表单,需要重写execute()方法,只需要return arg0.findForward("success");
a.写好以后要配置action
<action path="/showForm" type ="action.ShowFormAction" name = "loginForm">
<forward name="success" path="/WEB-INF/register/login_form.jsp"></forward>
</action>
b.要在<action-mappings>的上面写<form-beans><form-bean name = "loginForm" type = "form.FormLoginAction"/></form-beans>
c.在写form.jsp时,要注意action ="XX" ,这个XX直要在配置文件中配置,我们在这里先写上showLoginForm.do
d.要在上边的forward里加上name="loginForm",这个name的value就是在上边定义的form-bean 的name直
到这里,这个页面就可以显示出来了,我的出来了,你的呢!可以给我个反馈么?
3.到这一步就可以开始进行加验证了
1).将LoginForm继承的类改成ValidatorForm,这个类其它地方不用改动
2)在/WEB-INF/目录下面新建一个XML文件,文件名字叫做Validation.xml
a.在里边加上头部
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
b.文件的格式可以使用模板
<form-validation>
<formset>
<form name="userForm"> //这个名字就是在struts-config.xml中定义的
<field property="name" depends="required">//这个property 是form.jsp里的,depends表示需要添加的验证条件,这个是现成的,在validator-rules.xml里有定义
<arg0 key="user.name" />这个key就是在资源文件里边定义的,required表示必须填
</field>
<field property="password" depends="required">//同上
<arg0 key="user.start" />
</field>
</form>
</formset>
</form-validation>
到这里xml文件配置完成,需要在资源文件里边写上你需要的key值
c.在struts-config.xml里,需要添加一个action,就是你的form.jsp中的action地址
<action path="/process" type ="action.ProcessAction" name = "loginForm" validate = "true" input = "/showForm.do">
<forward name="success" path="/WEB-INF/register/login_form.jsp"></forward>
</action>
validate ="true"代表进行服务器端验证,input = "/showForm.do"代表验证失败要去的地方,他们是一对
现在我们把form.jsp的action的地址改成"process.do",因为我们不想转到其它页面,可以把ProcessAction 的返回值写成return null;
d.要在struts-config.xml文件中的最后一句之前(重点)加上
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
e.资源文件如何写:例子
errors.required {0} must not null //required就是你在validation中定义的,代表必须填,如果没有出这个错误,{0}就是占位符的意思
user.name name //这个"name"就会代替{0}
user.password password //这个“password”就会代替{0}
f.在form.jsp文件中的每个需要验证的内容下面加上:<html:errors property ="name"/>,这个property 的值就是需要验证的东西的property
如果经常出现无效的参数异常就把服务器关了,在重启一下
如何使用ValidatorForm进行服务器端验证
最新推荐文章于 2023-07-02 23:41:15 发布
