鸡肋---Struts form 的改造-----------delegate methods

17 篇文章 0 订阅
17 篇文章 0 订阅

鸡肋---Struts form 的改造

  鸡肋是对Struts form的形象表达。

Struts FormStruts的一个不完美的地方,虽然在struts的体系中,form看起来没有什么大问题。可到我们的应用之中,form就显得不是那么必要了。struts form做的工作不彻底------虽然他无法作得彻底。

数据从jsp/html过来的,struts使用reflection填充struts form,这个过程是要消耗资源,然后从form再复制到Entity Object中,这个过程也要消耗资源。就以上两步来说,其实可以合并为一步,2步有点浪费。

解决方式有两种:

第一就是使用delegate方式,在form中持有一个entity Object(注意要初始化),并使formentity的属性进行delegate,并提供entity Objectgetter/setter

 例如:

  public class Person {

    private String name

    //names   getter and setter

}

  public class PersonForm extends ActionForm{

//这个一定要有

//还必须有一个getter

      private Person person = new Person();    

     public void setNameString name{

          personsetNamename);

     } 

     public String getName(){

          return persongetName();

     }

 

public Person getPerson(){

   return thisperson

}

}

 

第二种方式,进行自定义的参数处理。这个方式比较复杂,要很多地方进行配合,比如要使用自定义的Struts PlugIn以及采用Template Method action进行改造,使用reflection进行赋值,解析xml配置文档。这种方式带来的益处是带来更多的便利。如果增加一个html/jsp form 字段,只要把配置配置文件增加一个对应字段就ok

如果Entity class 修改,那么也只要修改配置文件。这对我们来说可太省力了。不过,需要特别说明一下,这个方案适合很多web application

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值