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,modelDriven)