本人最近在研究一个OA的代码,发现很多地方都用到了execute方法。比如下面:
public String execute(){

User user = userManager.login(username, password);

if(user != null){
ServletActionContext.getRequest().getSession().setAttribute("login", user);
}

//登入成功后,转向后台管理主界面
return "back_index";
}
我发现execute方法好像是一个专门处理页面跳转、实现页面的方法。
我的问题是,这个execute方法在做项目当中仅仅是用在这些功能上吗?他的本质是什么?

解决方案 »

  1.   

     个人认为没区别,你发的一个登录方法,无非就是在<form>里少写了点代码
      

  2.   

    execute()通常是控制层的主方法,可以理解为webwork或struts1、2都使用的规矩(约定),他的本质或许就是个共同的约定(大家都知道这是后台控制层的)。
    当然楼主自己可以随意破坏这个约定,让他出现在任何不同功能的类中。
      

  3.   

    也可以不用execute方法作为处理页面跳转 自己定义
      

  4.   

    我发现execute方法好像是一个专门处理页面跳转、实现页面的方法。 
    我的问题是,这个execute方法在做项目当中仅仅是用在这些功能上吗?他的本质是什么?一个类,当然就是完成一个业务的处理过程啊,你还需要它做什么呢?
    他的本质就是一个处理类似登录的这样的业务的入口,方法
      

  5.   

     我觉得主要是一种规范吧这样可以少在web.xml里面配置那么多的servlet类名。
      

  6.   

      
      execute()只是一个普通的方法 跟其他的方法一样 只是大家习惯了用execute这个单词
      就像 一个人的名字一样,约定俗成的,没有为什么,
      分发Action应该知道吧 
      一个Action里面有多个像execute()这样的方法,只是方法名字不一样了而已,像doLogin();toEdit
      以do开头的方法约定俗成的认为是解决业务逻辑的,而以to开头的方法约定俗成的认为是专门跳转页面的;