ActionForm的作用机理,及验证方法步骤

来源:互联网 发布:jdk 7u45 linux 编辑:程序博客网 时间:2024/04/30 14:02

 1、ActionForm的作用机理

2.ActionForm的用法

   a.首先创建ActionForm

         package test;

         import org.apache.struts.action.*;

         import javax.servlet.http.*;

         public class TestActionForm extends ActionForm{

               //属性值 ,下面username,password假设作为该类的属性

               ……

               //setter和getter方法

               ……

               //验证表单数据,使用ActionErrors和ActionMessage来提交错误信息到页面

               public ActionErrors validate(ActionMapping actionMapping,HttpServletRequest httpServletRequest)

               {

                  //ActionErrors封装一组验证错误,同map类似

                  ActionErrors errors=new ActionErrors();

                  errors.add("nameError",new ActionMessage("error.username.required",username));

                  errors.add("passwordError",new ActionMessage("error.username.required",password));

                  return null;

               }

               //表单数据复位

               public void reset(ActionMapping actionMapping,HttpServletRequest httpServletRequest)

               {

               }

         }

   b.配置ActionForm

         每创建一个ActionForm类,就需要在Struts的配置文件Struts-config.xml中配置这个类。

         <form-beans>

                  <form-bean name="testActionForm" type="test.TestActionForm"></form-bean>

         </form-beans>

   c.访问ActionForm

         1)使用Struts HTML标记库

         2)从Request或session对象中取出ActionForm对象

                  TestActionForm form=(TestActionForm)request.getAttribute("testActionForm");

         3)通过Action类的execute()方法直接访问ActionForm

3.表单数据的验证

   a.重写validate()方法

              //验证表单数据,使用ActionErrors和ActionMessage来提交错误信息到页面

               public ActionErrors validate(ActionMapping actionMapping,HttpServletRequest httpServletRequest)

               {

                  //ActionErrors封装一组验证错误,同map类似

                  ActionErrors errors=new ActionErrors();

                  errors.add("nameError",new ActionMessage("error.username.required",username));

                  errors.add("passwordError",new ActionMessage("error.username.required",password));

                  return null;

               }

   b.设置资源文件

               #username is wrong用户名有误
               error.username.required=<li>username is wrong</li>
               #password is wrong
               error.password.required=<li>password is wrong</li>

   c.修改配置文件

               在struts-config.xml配置文件中,把<action>元素的validate属性设置为true,指定input属性的URL值(当表单验证失败的时候返回该URL);并添加<message-resources>元素以指定资源文件的存放路径。

               可以通过配置web.xml来配置ActionServlet显示的文件后缀,红色部分:

                 <servlet-mapping>
                   <servlet-name>action</servlet-name>
                   <url-pattern>*.aspx</url-pattern>
                 </servlet-mapping>

   d.输入页面中插入标记

               <html:errors property="namewrong"/>

4.编程时需要注意的一些小问题:

               <html:form action="loginForm" method="post">

                              <!--一些html代码-->

               </html:form>

               struts-config.xml中的配置:

               <form-beans>

                              <form-bean name="loginForm" type="struts.LoginForm"></form-bean>

               </form-beans>

               <action-mappings>
                   <action path="/loginForm" name="loginForm" type="struts.LoginAction" scope="request" validate="true" input="/login.jsp" attribute="loginForm">
                   </action>
                 </action-mappings>

                红色与红色部分名称一样,蓝色与蓝色部分名称一样,可以随意命名,但是名字相互对应!!