我是靠谱客的博主 聪慧悟空,最近开发中收集的这篇文章主要介绍【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这种方法呢?

最后

以上就是聪慧悟空为你收集整理的【Struts】ActionForm的全部内容,希望文章能够帮你解决【Struts】ActionForm所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部