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 路人

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

          主站蜘蛛池模板: 清水县| 金寨县| 内丘县| 鲜城| 清镇市| 公安县| 郎溪县| 深水埗区| 阳朔县| 昌黎县| 永丰县| 揭东县| 通海县| 垣曲县| 南阳市| 元江| 浑源县| 怀柔区| 沁水县| 彰化县| 桓仁| 芦山县| 泉州市| 天台县| 宜兰市| 陆川县| 望奎县| 新晃| 南昌市| 呼图壁县| 仪陇县| 台州市| 萨迦县| 北安市| 富民县| 河北省| 奉化市| 襄樊市| 尉氏县| 华蓥市| 芦山县|