zoukankan      html  css  js  c++  java
  • Sturts2 三种开发模式 (转)

    1、实现与 Servlet API的交互
    struts2中提供了Map类型的request、session与application,可以从ActionContext对象中获得。
    ActionContext对象位于com.opensymphony.xwork2包中,它是Action执行的上下文。
    获取ActionContext对象:
     ActionContext context= ActionContext.getContext();
    获得request对象
     Map request = (Map)context.get("request");
    通过put()方法把需要传递的数据对象放入request对象中:
     request.put("key",Object);
     
    2、域模型DoaminModel
      无论是用户注册逻辑的实现,还是其他的一些表单信息的提交操作,并不是通过操作真正的领域对象进行实现。
      原因是因为将所有的实体对象的属性都封装到了Action对象中,而Action对象只是操作一个实体对象中的属性,
      而不是操作某一个实体对象。这样的操作有些偏离了领域模型设计的思想,比较好的设计是将某一领域的实体
      直接封装成一个实体对象。
      
      struts2的action中使用domain域模型接收参数
        private UserInfo user;
      public void setUser(UserInfo user) {
      this.user = user;
      }
      public void getUser(){
       return user;
      }
          使用DomainModel接收参数    
       a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法; 
       b.接收:通过对象的属性接收参数,如:user.getUserName(); 
       c.发送:使用对象的属性传递参数,如:user2_add?user.userName=MGC;
          
    3、驱动模型ModelDriven
    驱动模型ModelDriven:(表单属性必须和实体类属性名称保持一致)
      模型驱动是使用javaBean对象来封装请求参数,在整个MVC流程中可以直接使用这个对象。在发送请求后Struts
      将各个请求参数(javabean的属性)封装到一个JavaBean对象中,Action接收这个实例对象并用该对象进行相关处理返回处理结果。 
      模型驱动的Action中定义javaBean并实例化,并且需要提供该JavaBean的getter和setter方法。Action需要实现ModelDriven接口。
      还是以UserAction为例:
      public class UserAction extends ActionSupport implements ModelDriver<User>{
      private User user= new User();
      /*
       *请求处理方法
       */
       @Override
       public User getModel(){
          return this.user
       }
        }
     getModel()方法返回了明确的实体对象user,所以表单中的元素名称不需要指定明确的实体对象引用,即可成功的将表单参数注入到user对象
       

  • 相关阅读:
    带修改离线主席树 + 树状数组 ZOJ
    树上主席树 + LCA SPOJ
    基础静态主席树 POJ
    数列分块入门1-9 LibreOJ
    Some about me
    [Java]Thinking in Java 练习2.12
    [Java]Thinking in Java 练习2.10
    [Java]Java中的自动包装
    [Java]Thinking in Java 练习2.2
    [杂记]CodeBlocks下载、安装及设置
  • 原文地址:https://www.cnblogs.com/hq233/p/6552653.html
Copyright © 2011-2022 走看看