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

博客指出Struts Form在应用中并非必要,其数据处理过程存在资源浪费。介绍了两种改造方式,一是使用delegate方式,在form中持有entity Object并提供getter/setter;二是进行自定义参数处理,虽复杂但能带来更多便利,适合很多web application。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鸡肋---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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值