`
eric.song
  • 浏览: 12308 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Struts2.0 ModelDriven中对象属性的传参方式

阅读更多

公司最近决定用最近用Struts2作为前端的MVC框架,在开发过程中遇到了领域模型ModelDriven中包含多个对象属性,那么页面怎么封装这个属性才能被后台的model对象接收到呢?

    

      以下是开发实例,具体包含了从页面到后台的Action参数传递过程的介绍:


1. 包含对象属性的ModelDriven对象,用于页面和后台Action的参数传递, 需要注意的是对象属性需要实例化,即属性对象的实例在大对象中已经被new过。

 public class GoodsDO extends Model{

 /**
  * 货品属性VO
  * */
 private GoodsPropVO goodsPropVO = new GoodsPropVO();
 
 /**
  * 货品VO
  * */
 private GoodsVO goodsVO = new GoodsVO();


 public GoodsPropVO getGoodsPropVO() {
  return goodsPropVO;
 }


 public void setGoodsPropVO(GoodsPropVO goodsPropVO) {
  this.goodsPropVO = goodsPropVO;
 }


 public GoodsVO getGoodsVO() {
  return goodsVO;
 }


 public void setGoodsVO(GoodsVO goodsVO) {
  this.goodsVO = goodsVO;
 }

 
}

 

2. 页面的参数属性定义格式为:对象属性名.属性名,如下是一段js提交form的代码,主要说明页面属性定义的格式:

$.jsonform({
  items : [ {
   id : 'cate_name',
   mapping : 'goodsVO.cate_name'
  }, {
   id : 'goods_name',
   mapping : 'goodsVO.goods_name'
  }, {
   id : 'goods_code',
   mapping : 'goodsVO.goods_code'
  }, {
   id : 'reg_code',
   mapping : 'goodsVO.reg_code'
  }, {
   id : 'goods_unit',
   mapping : 'goodsVO.goods_unit'
  }, {
   id : 'goods_pinyin',
   mapping : 'goodsVO.goods_pinyin'
  }, {
   id : 'brand_name',
   mapping : 'goodsVO.brand_name'
  }, {
   id : 'brand_name',
   mapping : 'goodsVO.brand_name'
  }, {
   id : 'company_name',
   mapping : 'goodsVO.company_name'
  } , {
   id : 'temp_min',
   mapping : 'goodsPropVO.temp_min'
  }, {
   id : 'temp_max',
   mapping : 'goodsPropVO.temp_max'
  }, {
   id : 'hum_min',
   mapping : 'goodsPropVO.hum_min'
  }, {
   id : 'hum_max',
   mapping : 'goodsPropVO.hum_max'
  }, {
   id : 'company_name',
   mapping : 'goodsVO.company_name'
  }, {
   id : 'length',
   mapping : 'goodsPropVO.length'
  }, {
   id : 'width',
   mapping : 'goodsPropVO.width'
  },{
   id : 'height',
   mapping : 'goodsPropVO.height'
  },{
   id : 'weight',
   mapping : 'goodsPropVO.weight'
  }]
 }); 

 

3. Action中注册ModelDriven 对象:

 

public class GoodsAction implements ModelDriven<GoodsDO>{

 

  /**实例化 ModelDriven 对象,Struts 不会主动帮你实例的*/

  private GoodsDO goodsDO = new GoodsDO();

 

//这里是实现接口方法

@Override
      public GoodsDO getModel() {
     // TODO Auto-generated method stub

//别忘记了,要把返回值写上哦
     return goodsDO;
     }

 

}

 

通过上面说明就可以知道Struts 2 中MVC的model在页面和Action交互方式,希望对大家有帮助!

分享到:
评论

相关推荐

    Struts2.0中文教程.chm

    5. **ModelDriven**:Struts2.0支持ModelDriven模式,允许将业务对象与Action直接关联,简化了数据绑定过程。 6. **ValueStack**:ValueStack是Struts2.0中用于存放Action上下文数据的数据结构,它可以方便地进行...

    struts2.0 应用开发,基本功能全部实现

    6. **值栈(Value Stack)**:Struts2中的一个重要组件,用于存储Action属性和ActionContext中的数据,方便在视图层进行数据访问。 7. **OGNL(Object-Graph Navigation Language)**:Struts2的默认表达式语言,...

    struts 2.0新手学习全材料

    5. **模型驱动(ModelDriven)**:Struts 2.0支持模型驱动,允许将业务对象直接绑定到Action,简化数据处理。 6. **OGNL(Object-Graph Navigation Language)**:OGNL是Struts 2.0中的表达式语言,用于在Action和...

    struts2.0核心包

    Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta Struts项目的一个版本,主要用于构建MVC(Model-View-Controller)架构的应用程序。这个核心包包含了实现Struts2框架核心功能的所有类...

    Struts2.0学习系列(整理)

    Struts2.0是Java Web开发中非常重要的一个框架,它是Apache软件基金会的Jakarta项目下的产品,基于MVC(Model-View-Controller)设计模式,用于构建企业级的Java Web应用程序。本学习系列旨在帮助开发者深入理解...

    struts2.0开发包

    10. **模型驱动(ModelDriven)**:这是一种设计模式,通过ModelDriven接口,可以将Action与业务对象关联,简化视图与模型的数据交互。 总的来说,Struts2.0开发包提供了全面的工具和组件,帮助开发者构建高质量的...

    struts2.0帮助文档

    6. **值栈(Value Stack)**:Struts2中的值栈是一个存储所有Action属性的对象容器,通过OGNL可以从视图层方便地访问这些属性。 7. **插件机制**:Struts2支持丰富的插件,如Tiles2用于布局管理,Struts2-dojo-...

    struts2.0实现的数据分页实现及实现分页步骤

    - 为了在Action和JSP之间传递分页信息,可以使用Struts2的拦截器(Interceptor)或者模型驱动(ModelDriven)特性,将分页对象绑定到Action上下文,然后在JSP中可以直接访问这些信息。 8. **实现分页导航**: - ...

    struts2.0拦截器完整

    拦截器(Interceptor)是Struts2.0中的核心组件之一,它允许开发者在Action执行前后插入自定义的逻辑,以实现如日志记录、权限检查、事务管理等通用功能。下面我们将深入探讨Struts2.0拦截器的完整知识体系。 1. **...

    struts2.0_apidocs

    在Struts2.0_apidocs中,我们可以深入学习以下几个关键知识点: 1. **Action接口与ActionSupport类**:Struts2的核心是Action类,它负责处理HTTP请求。Action接口定义了execute()方法,这是每个Action必须实现的...

    struts2.0基本配置包类

    8. **模型驱动(ModelDriven)**:Struts2提供了一种模型驱动的模式,允许将Action类与业务对象(BO)分离,Action仅作为请求和BO之间的桥梁,使得代码更加整洁。 9. **主题和皮肤**:Struts2允许定义和切换不同的...

    Struts2.0类库

    开发者可以用OGNL来获取、设置值栈中的对象属性,或者执行复杂的表达式。 8. **插件体系**:Struts2具有丰富的插件系统,可以轻松集成其他框架,如Spring、Hibernate等,以实现更高级的功能,如依赖注入和持久化...

    struts2.0

    OGNL允许直接访问对象属性,甚至支持动态表达式和方法调用。 5. **插件体系**:Struts2有一个强大的插件系统,可以方便地扩展框架功能,例如,Tiles插件用于页面布局,Freemarker或Velocity插件处理视图渲染,Ajax...

    Struts2.0API

    Struts2.0 API是Java Web开发中一个重要的框架,它是Apache软件基金会的Struts项目的一个版本,专门用于构建基于MVC(Model-View-Controller)设计模式的应用程序。Struts2提供了丰富的功能,帮助开发者简化Web应用...

    Struts2.0深入学习 命名空间,模型驱动,表单重复提交

    相反,Struts2会自动将请求参数绑定到一个由`ModelDriven`接口实现的属性上,这个属性通常称为模型对象。这样,开发者可以专注于业务逻辑,而不必关心数据如何从请求中获取。例如,你可能有一个User类作为模型对象,...

    struts2.0类库

    Struts2.0 类库是Java Web开发中一个重要的框架,它主要负责处理MVC(Model-View-Controller)架构中的Controller部分。Struts2是一个开源的、基于Apache许可证的Web应用框架,它继承了Struts1的优点并吸取了其他...

    Struts2.0 简单登录示例

    7. **模型驱动(ModelDriven)**:在更复杂的项目中,可能会使用`ModelDriven`接口,将Action与业务对象绑定,简化代码。但这在简单的登录示例中通常不被采用。 理解以上核心概念后,初学者可以通过创建和运行这个...

    struts2.0+hibernate3.1+spring2.5的配置

    Struts2.0、Hibernate3.1和Spring2.5是经典的Java企业级开发框架组合,它们在2000年代末至2010年代初广泛用于构建Web应用程序。这个配置组合提供了模型-视图-控制器(MVC)架构、持久化管理和依赖注入等核心功能。 ...

    jsonplugin(struts2.0)

    默认情况下,只有Action的模型驱动属性(ModelDriven)和值栈中的值(ValueStack)会被转换。如果需要自定义转换规则,可以通过配置JSONInterceptor来实现。 5. **参数过滤**:出于安全考虑,JSONPlugin允许配置...

    Struts2接收参数ModelDriven

    9. **与其他特性结合**:ModelDriven可以与Struts2的其他特性如ValueStack、OGNL表达式语言等相结合,提供更加灵活的数据访问方式。 总之,Struts2的ModelDriven机制是其框架中一个强大的功能,可以帮助开发者更好...

Global site tag (gtag.js) - Google Analytics