posts - 14,  comments - 37,  trackbacks - 0

          前置條件:

                 假設用戶已經按照《appfuse執行步驟》文檔進行配置并操作,最后產生了一個叫uappweb應用。如果用戶需要新增加功能,只要按照下面的步驟去操作就可以輕松地完成任務。


           

           

           

           

          開發步驟:

          1.         先在數據庫里創建表。例如,student表。注意,表的名稱的第二個字母最好不要大寫。以免出現奇怪的問題(好像是hibernatebug)。

          2.         把目錄切換到appgen的工作目錄,修改文件tables。把里面的內容先去掉,然后添加新的表名。例如,student

          3.         appgen的工作目錄下,運行Ant generate

          運行結果:從數據庫里讀取表結構,并生成相關的strus表單、jsp文件、hibernatePOJO對象、DAOmanager對象、struts配置文件、spring配置文件、velocity的模板文件。

           

           

          4.         轉到uapp目錄下,執行ant package-web生成WAR文件

          這個過程里,

          a)         會根據java文件生成hibernate的映射文件;

          b)        compile-dao。編譯dao目錄下的java對象。

          c)        package-dao。把dao目錄下的classes打包成demo-dao.jar

          d)        compile-service。編譯service目錄下的java對象。

          e)         package-service。把service目錄下的classes打包成demo-service.jar

          f)         copy-resources。期間,會調用native2ascii Converting 1 file from D:projectappfusemyappfusedemowebWEB-INFclasses to D:projectappfusemyappfusedemobuildwebclasses

          g)        generate.database.properties

          h)        copy-web-files

          i)          gen-forms。根據struts配置文件產生Form表單對象。

          j)          compile-web。會編譯action對象。    javac Compiling 40 source files to D:projectappfusemyappfusedemobuildwebclasses

          k)        webdoclet。產生

                                   i.              web.xml

                                 ii.              uapp.tld

                                iii.              struts-config.xml

                               iv.              validation.xml

                                 v.               

           

          l)          package-web.。生成war包。

           

           

           

          注意:我們經常要處理實體間的關系,如一對多,多對多。而appgen產生的POJO對象往往都太簡單,沒有處理這些復雜的關系。所以,我們需要手工地修改POJO對象,建立對象的關聯。例如,在Parent對象里建立對Child的關聯。

          Parent.java對象里,增加

           

          private Set children =new HashSet();

          /**

                 * @return Returns the booths.

                 *

                 *

                 * @hibernate.collection-one-to-many

                 * class="org.aos.exhibition.model.Child"

                 *

                 * @hibernate.collection-key column="pid"

                 *

                 * @hibernate.set

                 * name="children"

                 * table="child"

                 * inverse="true"

                 * sort="unsorted

                 * lazy="true"

                 * cascade="all"

                 */

           

           

              public Set getChildren()

              {

                     return this.children;

              }

                

                 還有相關的addChildren(Child child)方法和getChildren()方法。

           

           

          Child對象里,增加

          private Parent parent;

           

           

          /**

                  * @return Returns the parent.

                  *

                  * @hibernate.many-to-one name="parent"

                  * column="pid"

                  * not-null="false"

                  * cascade="all"

                  * 

                  */

                 public Parent getParent() {

                        return parent;

                 }

           

           

                 public void setParent(Parent parent) {

                        this.parent = parent;

                 }

          最后,運行ant package-web產生相關的hibernate映射文件,并編譯。

           

           

          在編譯的過程中,可能會有一些錯誤,例如, ActionForm包名的錯誤導致編譯問題。

          org.appfuse.model.Parent應該為org.aos.exhibition.model.Parent。需要自己修改相關的ActionForm,把包名更正。

           

           

          1.         另外,我們經常會發現appgen給我們產生的jsp代碼框架太簡單,不能符合我們的要求,例如樣式、布局等等。那么我們需要修改uappwebpages目錄下的jsp文件。

          2.         部署。執行ant deploy. 發布web應用到tomcatwebapps目錄下。

          3.         拷貝D:Tomcat50webappsdemoWEB-INFclassesorgappfusewebappactionLookupMethods.propertiesclassesorgaosexhibitionwebappaction 目錄下。

          4.         如果是中文版本,還需要把ApplicationResources_en.properties里面新增的內容拷貝到ApplicationResources_zh_CN.properties文件里面。

           

           

          5.         使用鏈接:http://localhost:端口號/uapp/ 來啟動web應用。如果在調試過程中發生net.sf.hibernate.HibernateException: Batch update row count wrong這樣的異常,那需要重新運行Ant generate,從第三步開始作一遍

          posted on 2007-07-18 16:43 冰封的愛 閱讀(258) 評論(0)  編輯  收藏 所屬分類: J2EE
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 北海市| 龙陵县| 芦溪县| 乐东| 沂水县| 丰原市| 台南市| 姜堰市| 冷水江市| 临海市| 沂水县| 沙雅县| 永平县| 镇原县| 云南省| 元谋县| 防城港市| 丹棱县| 金湖县| 洪洞县| 宁陕县| 夏津县| 林西县| 清涧县| 青阳县| 睢宁县| 武定县| 利辛县| 临沧市| 瑞金市| 米林县| 黄骅市| 潢川县| 陇南市| 襄垣县| 常德市| 铜梁县| 比如县| 崇信县| 周至县| 高台县|