<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 5, comments - 24, trackbacks - 0, articles - 20
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    修改AppFuse 8

    Posted on 2007-04-27 17:42 kook 閱讀(360) 評論(0)  編輯  收藏 所屬分類: J2EE

    用AppFuse有一段時間了,也發(fā)現(xiàn)了它的一些問題,或者說不適合我們開發(fā)的地方。

    1. build.xml中的setup:setup是安裝數(shù)據(jù)庫、tomcat、生成源代碼并部署的target,在初次使用時很方便。但以后使用就有點問題了,因為每次執(zhí)行這個命令就要把數(shù)據(jù)庫刪除重新安裝一遍,尤其是在多人同時開發(fā)的時候,每個人都setup一次實在有點麻煩。因此我在使用過一次setup后,就將命令depends="setup-db,setup-tomcat,deploy"修改為depends="package-dao,setup-tomcat,deploy",以后再使用這個命令就不會再去動數(shù)據(jù)庫了。如果有需要修改數(shù)據(jù)庫的地方,單獨運行ant setup-db。
    2. ApplicationResources_zh_CN.properties & ApplicationResources_zh.properties:這個前面提到過,這兩個中文資源文件中存在亂碼,需要把亂碼的地方修改過來。
    3. AppGen:使用AppGen生成文件的時候常常會在sample-data處報錯。原因我沒仔細研究,但自我認為sample-data.xml在這里沒有生成的必要,所以在extras\appgen\build.xml中搜索sample-data.xdt,將該處的template標簽注釋掉了。
    4. struts_form.xdt:\metadata\templates下的struts_form.xdt是用來根據(jù)POJO生成FormBean的xdoclet文件。當POJO中含有同樣是POJO類型的屬性時(通常是表中的父表關系),F(xiàn)ormBean倒不會有問題,可validation.xml會自動將這個父親中的所有屬性也納入當前FormBean里進行驗證。這意味著我們在做子表單時必須包含父表單中的所有屬性,麻煩!validation.xml是根據(jù)FormBean生成的,所以到struts_form.xdt下查找struts.validator,其中有一行:@struts.validator,仔細讀代碼就知道了這里是判斷如果是org.appfuse.model.BaseObject類型的屬性,就在該屬性前加@struts.validator注釋,所以把這一行去掉。如果需要驗證,手動在POJO的get方法前加一行@struts.validator就可以了。不過不知道如果想要單獨對父親屬性中的某個屬性進行驗證該怎么做?
    5. DAO單元測試:AppGen生成的DAO單元測試類不能通過測試。原來在DAO的測試類中,測試了DAO的CRUD方法。在testAdd方法中,會添加一條主鍵值為1的記錄,可是在testRemove的測試中,刪除的主鍵值卻成了3,系統(tǒng)找不到這條記錄,當然會報錯了。在extras\appgen\src\detailed下有生成DAOTest類的模版DAOTest.xdt,找到testRemove方法,把第一句修改為<XDtMethodEx:idField getType="propertyType"/> removeId = <XDtForm:classNameLower/>Id; 這樣,刪除的記錄主鍵值就與添加的主鍵值就一致了。不過如果主鍵是隨機生成的,這個辦法就不行了,那么自己修改測試類吧。
    6. 密碼加密:AppFuse默認是給用戶密碼加密的,如果不想加密,需要在properties.xml中設置屬性encrypt.password為false,這樣用戶登錄時系統(tǒng)就不會對密碼加密了。但是用戶注冊和編輯信息時程序卻沒有進行判斷,直接對密碼加密。這里需要修改的地方有兩個:SignupAction和UserAction,分別對加密的地方做一個判斷。Boolean encrypt = (Boolean) getConfiguration().get(Constants.ENCRYPT_PASSWORD);一句可以拿到配置文件中的值。
    主站蜘蛛池模板: **真实毛片免费观看 | 国产一精品一av一免费爽爽| 日韩免费一区二区三区| 亚洲色少妇熟女11p| 日本一区二区三区免费高清| 亚洲日韩乱码中文无码蜜桃| 亚洲毛片免费视频| 亚洲欧洲精品久久| 最近高清中文字幕无吗免费看| 亚洲另类自拍丝袜第1页| 在线观看H网址免费入口| 国产午夜亚洲精品| 岛国片在线免费观看| 小说专区亚洲春色校园| 亚洲乱码日产精品a级毛片久久| 一个人看www免费高清字幕| 亚洲乱码中文字幕综合| 无码日韩精品一区二区免费暖暖| 久久亚洲AV无码精品色午夜麻豆| 人成午夜免费视频在线观看| 亚洲AV无码之国产精品| 亚洲精品国产V片在线观看| 中文字幕免费不卡二区| 亚洲综合久久一本伊伊区| 日本无吗免费一二区| 国产黄在线播放免费观看| 亚洲一区二区三区电影| 日韩视频在线精品视频免费观看 | 亚洲精品成人图区| 免费中文熟妇在线影片| 免费人成网站永久| 亚洲AV乱码久久精品蜜桃| 久久久高清免费视频| 一级毛片在线免费视频| 亚洲综合久久综合激情久久| 在线观看免费毛片| 最近免费mv在线观看动漫| 一本色道久久88—综合亚洲精品| 国产亚洲精品看片在线观看 | 久久久久久精品免费免费自慰| 亚洲精华国产精华精华液好用|