如题所述,不是很明白Struts2为什么要舍弃Form?在Struts1当中我们有Form绑定页面上表单属性,
用POJO与数据库字段绑定,我觉得这样的开发层次分的比较清楚,容易维护.唯一麻烦的事:就是从数据库里查询的数据
在放到页面的时候,我们习惯性将他再组装一次放到FORM里,然后显示在页面上.为了更好的维护,我们舍弃这一麻烦不是更好吗?
为什么要把FORM给拿掉呢???

解决方案 »

  1.   

    用struts1.2时就不喜欢form,2.0去掉了省了不少事。不用写那么多类了!
      

  2.   

    吧form bean拿掉是因为action自己就是form bean,struts2的理念更好的体现了高聚低耦,把每个action变成一个简单的javabean来操作,不关联j2ee框架中任何类以及包,及时把struts2的action放在swing中一样可以运行。java bean就是属性加上一些操作。
    而且struts2也可以把action与form bean分开,吧、把数据封装与操作处理分开来放,这要看开发者自己的意愿了。
      

  3.   

    建议去看下它的两种模式 属性驱动  模型驱动 它并没有舍去form 
    看个人喜好了 只是在配置的时候不用那么繁琐
      

  4.   

    不是舍弃了FORM 是舍弃的FORMBEAN 我们在前台获得完FORMBEAN之后 还要将FORMBEAN里的值放到JAVABEAN里 这样做很不划算 在STRUTS2中 你可以直接将属性映射到自己的PO中去 
      

  5.   

    FORM  鸡肋 鸡肋 弃之可惜 食之无味
     
      

  6.   

    不需要写那么多类,在action中就能实现form的功能了
      

  7.   

    感觉省去Form,你用的是struts2属性驱动模式。即在Action中定义属性及get/set方法。其实没有省去,你可以用struts2的模型驱动模式。1>.定义普通JavaBean。
    2>.Action中实现modelDriven,并实现getModel方法即可。
      

  8.   

    那你还是在你得action里面定义了form里面的东西了,无非是你少写了一些javabean
    form也不是像你说得那么次吧。
      

  9.   

    在struts1中有form,你需要继承它,而struts2中你就不需要继承任何类就可以实现接受参数,这样比较纯粹,减少了struts框架的侵入性,也就是说
    struts2中,你可以用POJO接受参数(这里的POJO不是说hibernate的pojo)。用POJO的好处在于,这个类还可以在别的地方用,哪天你不想用Struts框架了,你的这个类还可以继续用,而前面继承了struts1里的类明显不能再用了框架最好是没有侵入性的。
      

  10.   

    在struts2里面用使用模型驱动,
    少写一个类.而且页面中的数据也不用去form取了!
      

  11.   

    我是楼主,看了大家的回复我很高兴.但我还有一个疑问,FormBean与Hibernate的POJO类字段都差不多,我们可不可以用POJO与代替FormBean?(我们老大的意思,就是POJO可以作为持久化对象,也可以做为Form对象),可我感觉这样的话,概念有点混淆,概念不清楚!不知各位怎么看的?
      

  12.   

    FORM  和  ENTITY 实体存在大量重复  是struts1.x 里争议最大的地方
      

  13.   

    我是楼主关于FormBean与POJO相互冲突,不知大家是项目中是怎么解决的?一、舍弃FormBean,所有表单属性的getXXX(),setXXX()方法都写在Action中
    二、用POJO代替FormBean,即POJO为持久化对象,又是FormBean
    三、所有表单属性的getXXX(),setXXX()方法都写在FormBean,POJO只用于持久化对象,这两个的类分工明确以上的三种做法,不知大家采用的是那种?建议采用那一种?有没有比上面三种更好的处理方法?
      

  14.   

    我比较倾向与第一种,比较统一,不选择第二种和第三种是以为增加了额外的工作量。
    在struts1体制中,FormBean != pojo,FormBean是必须的,
    而struts2实施了改革开发,使得FormBean得到了解放,你为什么还是要奴役FormBean呢,呵呵...