【Struts】ActionForm

    ActionForm是一个JavaBean,需继承org.apache.struts.action.ActionForm类,它捕获通过HTTP请求传送的参数ActionForm针对每个HTML表单中的字段具有一个对应的属性ActionServlet匹配请求中的参数和ActionForm中的属性,并调用ActionForm中的setter方法,将参数传入ActionForm我们的login.jsp有username和password两个表单字段(下面将会看到),所以,我们需要定义ActionForm中相应的setter方法:setUsername和setPassword方法ActionForm中的getter/setter方法,可以通过Eclipse集成环境,自动生成ActionForm中的内部属性全部定义为私有的(private),并通过公共(public)的getter/setter方法来访问。例如:

publicclass LoginActionForm extends ActionForm {

   private String username;

   private String password;

   /**

    * @returnReturns the password.

    */

   public String getPassword() {

      return password;

   }

   /**

    *@param password The password to set.

    */

   public void setPassword(String password) {

      this.password = password;

   }

   /**

    *@return Returns the username.

    */

   public String getUsername() {

      return username;

   }

   /**

    *@param username The username to set.

    */

   public void setUsername(String username) {

      this.username = username;

   }

}


    我们的LoginAction做了如下事情,这些是一个Action通常都会做的最典型的事情:

    1.将输入的ActionForm强制转换为LoginActionForm

    2.从LoginActionForm对象中获取用户名以及密码的数据信息

    3.执行用户名及密码的逻辑判断操作(在通常的情况下,要将这些业务逻辑交给专门的类去处理,这里这样做是为了演示的需要)

    4.根据业务逻辑执行的结果,决定返回哪个ActionForward,我们在这里使用success这个标识来表示登录成功页面,用error标识来表示登录失败页面

publicclass LoginAction extends Action {

   public ActionForward execute(ActionMappingmapping, ActionForm form,

        HttpServletRequest request,HttpServletResponse response) throws Exception {

      //将ActionForm强制转换为LoginActionForm

      LoginActionForm loginForm =(LoginActionForm)form;

     

      //从LoginActionForm中提取从页面表单传递过来的参数

      String username = loginForm.getUsername();

      String password = loginForm.getPassword();

     

      //根据这些参数,执行业务逻辑操作

      if("admin".equals(username)&& "admin".equals(password)){

        //如果用户名和密码均为admin,则转向登录成功页面

        returnmapping.findForward("success");

      }else{

        //否则转向登录失败页面

        returnmapping.findForward("error");

      }

   }

}
    小结:之前在drp中常常使用的是request的getParameter的方法来获取jsp页面的数据,有了ActionForm之后就可以直接获取了,感觉挺方便的。但是个人感觉在结构上多了一个ActionForm的类,还需要在struts的配置文件中设置form和action的关系,而且在配置的时候还容易出错,所以感觉还蛮繁琐的。我在迷惑什么时候直接使用request,什么时候使用ActionForm这种方法呢?
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值