• 创建Action的三种方式


    1、创建一个Action类

    一个简单的java类,

    没有实现任何接口,也没有继承任何类。

    优点:无耦合

    适用于逻辑相对简单的action

    import com.opensymphony.xwork2.Action;
    
    
    public class DefaultAction{
     
        public String execute() throws Exception {
            System.out.println("这是一个action类");
            return null;
        }
      
    }
    

      

    2、实现Action接口

    com.opensymphony.xwork2.Action

     
    import com.opensymphony.xwork2.Action;
    
    
    public class ImplAction implements Action{
     
        @Override
        public String execute() throws Exception {
            System.out.println("这是继承Action的action类");
            return SUCCESS;
        }
         
    }
    

      接口中有五个常量属性以及一个方法:

    属性:

    success:跳转到成功后的视图页面

    none:代表返回null,不做任何操作(跳转操作也不会做)

    error:跳转到出现错误的视图页面

    input:这是struts2框架中interceptor中发现问题后会访问的一个视图

    login:一个登录视图,可用于权限操作

    方法:

    execute:将要执行的方法,需要重写此方法,

    3、

    继承ActionSupport类

    com.opensymphony.xwork2.ActionSupport

    import com.opensymphony.xwork2.ActionSupport;
    import com.opensymphony.xwork2.ModelDriven;
     
    
    public class LoginAction extends ActionSupport implements ModelDriven<User> {
        /**
         *ModelDriven创建一个User实例
         */
        private User user=new User();
        //实现序列化接口
        private static final long serialVersionUID = 1L;
     
        /**
         * 登录验证
         * @return
         */
        public String LoginUI() {
            System.out.println(user.getPassword());
            if (user.getUserName()==null||"".equals(user.getUserName())) {
                this.addFieldError("userName12","用户名出错");
                return "LoginUI";
            }
            return "LoginUI";
        }
         
        /* (non-Javadoc)
         * @see com.opensymphony.xwork2.ModelDriven#getModel()
         * 该方法对于返回model
         */
        @Override
        public User getModel() {
            // TODO Auto-generated method stub
            return user;
        }
    }
    

      

    此类也实现了Action接口

    因为它具有丰富的功能,如表单校验 错误信息 设置国际化等,所以常在开发中使用,但也同样有高耦合的问题

    内容参考:https://www.cnblogs.com/lonecloud/p/5702101.html && https://blog.csdn.net/wangrenpan/article/details/70148122

  • 相关阅读:
    事件总线demo
    软件架构分类(转载)
    ASP.NET MVC 使用 Datatables (2)
    ASP.NET MVC 使用 Datatables (1)
    查看win10的激活信息和版本号
    2016年工作计划
    通俗粗暴的事件委托理解
    matplotlib系列——条形图
    matplotlib系列——折线图
    使用pip安装python模块和包
  • 原文地址:https://www.cnblogs.com/tttty/p/11410331.html
Copyright © 2020-2023  润新知