love fish大鵬一曰同風起,扶搖直上九萬里

          常用鏈接

          統計

          積分與排名

          friends

          link

          最新評論

          Struts ActionForm的優化寫法(轉)

          要點:
            在ActionForm定義值對象company,定義Setter/Getter方法;
            在JSP里對input元素的名稱稍加變化,加company前綴,company.cp_name。
            Struts能把company.cp_name的值自動地Populate到對象company,填充cp_name屬性。

          效果:
            簡化ActionForm對屬性的定義,實際上系統只需要保留ValueObject和PersistObject兩類對象。
            本質上是借用值對象ValueObject作為ActionForm的傳值對象。
           
          變化:
            當頁面元素來自不同類值對象時,例如Company,Bulletin等,分別寫不同的前綴,company.cp_name,bulletin.bl_title。
            對于不屬于任何值對象的元素,照基本寫法寫。

          ===
          示例代碼

          ** 傳統寫法:
          //CompanyForm.java

          package com.ticket.company.actionform;
          import javax.servlet.http.*;
          import org.apache.struts.action.*;
          import com.ticket.entity.company.*;

          public class CompanyForm
              
          extends ActionForm {

              
          private String cp_name;            //名稱
              private String cp_phone;           //電話
              private String cp_fax;             //傳真

              
          public String getCp_name() {
                  
          return cp_name;
              }


              
          public void setCp_name(String cp_name) {
                  
          this.cp_name = cp_name;
              }


              
          public String getCp_phone() {
                  
          return cp_phone;
              }


              
          public void setCp_phone(String cp_phone) {
                  
          this.cp_phone = cp_phone;
              }


              
          public String getCp_fax() {
                  
          return cp_fax;
              }


              
          public void setCp_fax(String cp_fax) {
                  
          this.cp_fax = cp_fax;
              }


              
          //其他代碼
          }


          ** 優化寫法:

          //CompanyForm.java

          package com.ticket.company.actionform;

          import javax.servlet.http.*;
          import org.apache.struts.action.*;
          import com.ticket.entity.company.*;

          public class CompanyForm
              
          extends ActionForm {

              
          public Company company = new Company();

              
          public Company getCompany() {
                  
          return company;
              }


              
          public void setCompany(Company company) {
                  
          this.company = company;
              }


              
          //其他代碼
          }


          //company_add.jsp

          要點:
            在ActionForm定義值對象company,定義Setter/Getter方法;
            在JSP里對input元素的名稱稍加變化,加company前綴,company.cp_name。
            Struts能把company.cp_name的值自動地Populate到對象company,填充cp_name屬性。

          效果:
            簡化ActionForm對屬性的定義,實際上系統只需要保留ValueObject和PersistObject兩類對象。
            本質上是借用值對象ValueObject作為ActionForm的傳值對象。
           
          變化:
            當頁面元素來自不同類值對象時,例如Company,Bulletin等,分別寫不同的前綴,company.cp_name,bulletin.bl_title。
            對于不屬于任何值對象的元素,照基本寫法寫。

          ===
          示例代碼

          ** 傳統寫法:
          //CompanyForm.java

          package com.ticket.company.actionform;
          import javax.servlet.http.*;
          import org.apache.struts.action.*;
          import com.ticket.entity.company.*;

          public class CompanyForm
              
          extends ActionForm {

              
          private String cp_name;            //名稱
              private String cp_phone;           //電話
              private String cp_fax;             //傳真

              
          public String getCp_name() {
                  
          return cp_name;
              }


              
          public void setCp_name(String cp_name) {
                  
          this.cp_name = cp_name;
              }


              
          public String getCp_phone() {
                  
          return cp_phone;
              }


              
          public void setCp_phone(String cp_phone) {
                  
          this.cp_phone = cp_phone;
              }


              
          public String getCp_fax() {
                  
          return cp_fax;
              }


              
          public void setCp_fax(String cp_fax) {
                  
          this.cp_fax = cp_fax;
              }


              
          //其他代碼
          }


          ** 優化寫法:

          //CompanyForm.java

          package com.ticket.company.actionform;

          import javax.servlet.http.*;
          import org.apache.struts.action.*;
          import com.ticket.entity.company.*;

          public class CompanyForm
              
          extends ActionForm {

              
          public Company company = new Company();

              
          public Company getCompany() {
                  
          return company;
              }


              
          public void setCompany(Company company) {
                  
          this.company = company;
              }


              
          //其他代碼
          }


          //company_add.jsp

          <form action="companyAdmin.do?action=addConfirm&forward=listAllLevel1" method="post" name="myForm" > 
              
          <tr> 
                  
          <td height="23" align="right"  class="bg2">單位名稱: </td>
                  
          <td width="85%">
                      
          <input name="company.cp_name" type="text" maxlength="25" size="50" height="16">
                      
          <font color="#FF0000">*</font>
                  
          </td>
              
          </tr>
              
          <tr>
                  
          <td height="23" align="right"  class="bg2">電  話:</td>
                  
          <td width="85%">
                      
          <input name="company.cp_phone" type="text" maxlength="20" size="30" height="16">
                  
          </td>
              
          </tr>
              
          <tr>
                  
          <td height="23" align="right"  class="bg2">傳  真:</td>
                  
          <td width="85%">
                      
          <input name="company.cp_fax" type="text" maxlength="20" size="30" height="16">
                     
          </td>
              
          </tr>
          </form>

           


           

          posted on 2007-05-16 14:25 liaojiyong 閱讀(4067) 評論(4)  編輯  收藏 所屬分類: Struts

          評論

          # re: Struts ActionForm的優化寫法(轉)[未登錄] 2008-06-30 12:00 jack

          博主太厲害了,我正在為此發愁呢  回復  更多評論   

          # re: Struts ActionForm的優化寫法(轉) 2008-11-30 21:40 shuiguo639

          所謂的“優化”,是指使用form時可以根據需要來調用company類的屬性。這樣的優化對于有大量屬性的而又被頻繁調用的類來講的確不錯。  回復  更多評論   

          # re: Struts ActionForm的優化寫法(轉)[未登錄] 2009-06-10 09:19 小生

          不是還要多寫一個Company類  回復  更多評論   

          # re: Struts ActionForm的優化寫法(轉) 2010-12-20 10:18 路人

          對我有幫組 謝謝  回復  更多評論   

          主站蜘蛛池模板: 宜良县| 昌黎县| 图们市| 临澧县| 修武县| 潞城市| 卢氏县| 乐亭县| 海伦市| 陆河县| 兴义市| 高平市| 科技| 福建省| 双流县| 泸水县| 波密县| 古浪县| 顺平县| 凤台县| 濮阳县| 万荣县| 文安县| 承德市| 墨脱县| 登封市| 牡丹江市| 汽车| 耒阳市| 和平区| 四川省| 阿拉善右旗| 永登县| 富裕县| 尖扎县| 南宫市| 泰和县| 湘乡市| 黔西县| 弥勒县| 新龙县|