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 閱讀(4074) 評論(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 路人

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

          主站蜘蛛池模板: 祥云县| 苏州市| 长顺县| 民和| 南靖县| 公安县| 宜兴市| 西吉县| 苏尼特左旗| 吴川市| 贞丰县| 交城县| 郴州市| 惠州市| 古浪县| 元江| 青河县| 湟源县| 元谋县| 客服| 邯郸市| 彭水| 平安县| 南乐县| 监利县| 洮南市| 霍城县| 四川省| 当涂县| 蓝田县| 周宁县| 奇台县| 闽清县| 稻城县| 乾安县| 长丰县| 裕民县| 沧源| 河东区| 赤峰市| 黄骅市|