<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    修改AppFuse 8

    Posted on 2007-04-27 17:42 kook 閱讀(361) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): J2EE

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

    1. build.xml中的setup:setup是安裝數(shù)據(jù)庫(kù)、tomcat、生成源代碼并部署的target,在初次使用時(shí)很方便。但以后使用就有點(diǎn)問(wèn)題了,因?yàn)槊看螆?zhí)行這個(gè)命令就要把數(shù)據(jù)庫(kù)刪除重新安裝一遍,尤其是在多人同時(shí)開(kāi)發(fā)的時(shí)候,每個(gè)人都setup一次實(shí)在有點(diǎn)麻煩。因此我在使用過(guò)一次setup后,就將命令depends="setup-db,setup-tomcat,deploy"修改為depends="package-dao,setup-tomcat,deploy",以后再使用這個(gè)命令就不會(huì)再去動(dòng)數(shù)據(jù)庫(kù)了。如果有需要修改數(shù)據(jù)庫(kù)的地方,單獨(dú)運(yùn)行ant setup-db。
    2. ApplicationResources_zh_CN.properties & ApplicationResources_zh.properties:這個(gè)前面提到過(guò),這兩個(gè)中文資源文件中存在亂碼,需要把亂碼的地方修改過(guò)來(lái)。
    3. AppGen:使用AppGen生成文件的時(shí)候常常會(huì)在sample-data處報(bào)錯(cuò)。原因我沒(méi)仔細(xì)研究,但自我認(rèn)為sample-data.xml在這里沒(méi)有生成的必要,所以在extras\appgen\build.xml中搜索sample-data.xdt,將該處的template標(biāo)簽注釋掉了。
    4. struts_form.xdt:\metadata\templates下的struts_form.xdt是用來(lái)根據(jù)POJO生成FormBean的xdoclet文件。當(dāng)POJO中含有同樣是POJO類(lèi)型的屬性時(shí)(通常是表中的父表關(guān)系),F(xiàn)ormBean倒不會(huì)有問(wèn)題,可validation.xml會(huì)自動(dòng)將這個(gè)父親中的所有屬性也納入當(dāng)前FormBean里進(jìn)行驗(yàn)證。這意味著我們?cè)谧鲎颖韱螘r(shí)必須包含父表單中的所有屬性,麻煩!validation.xml是根據(jù)FormBean生成的,所以到struts_form.xdt下查找struts.validator,其中有一行:@struts.validator,仔細(xì)讀代碼就知道了這里是判斷如果是org.appfuse.model.BaseObject類(lèi)型的屬性,就在該屬性前加@struts.validator注釋?zhuān)园堰@一行去掉。如果需要驗(yàn)證,手動(dòng)在POJO的get方法前加一行@struts.validator就可以了。不過(guò)不知道如果想要單獨(dú)對(duì)父親屬性中的某個(gè)屬性進(jìn)行驗(yàn)證該怎么做?
    5. DAO單元測(cè)試:AppGen生成的DAO單元測(cè)試類(lèi)不能通過(guò)測(cè)試。原來(lái)在DAO的測(cè)試類(lèi)中,測(cè)試了DAO的CRUD方法。在testAdd方法中,會(huì)添加一條主鍵值為1的記錄,可是在testRemove的測(cè)試中,刪除的主鍵值卻成了3,系統(tǒng)找不到這條記錄,當(dāng)然會(huì)報(bào)錯(cuò)了。在extras\appgen\src\detailed下有生成DAOTest類(lèi)的模版DAOTest.xdt,找到testRemove方法,把第一句修改為<XDtMethodEx:idField getType="propertyType"/> removeId = <XDtForm:classNameLower/>Id; 這樣,刪除的記錄主鍵值就與添加的主鍵值就一致了。不過(guò)如果主鍵是隨機(jī)生成的,這個(gè)辦法就不行了,那么自己修改測(cè)試類(lèi)吧。
    6. 密碼加密:AppFuse默認(rèn)是給用戶(hù)密碼加密的,如果不想加密,需要在properties.xml中設(shè)置屬性encrypt.password為false,這樣用戶(hù)登錄時(shí)系統(tǒng)就不會(huì)對(duì)密碼加密了。但是用戶(hù)注冊(cè)和編輯信息時(shí)程序卻沒(méi)有進(jìn)行判斷,直接對(duì)密碼加密。這里需要修改的地方有兩個(gè):SignupAction和UserAction,分別對(duì)加密的地方做一個(gè)判斷。Boolean encrypt = (Boolean) getConfiguration().get(Constants.ENCRYPT_PASSWORD);一句可以拿到配置文件中的值。
    主站蜘蛛池模板: 午夜寂寞在线一级观看免费| 国产亚洲精品国看不卡| 亚洲欧好州第一的日产suv| 波多野结衣一区二区免费视频| 三级网站在线免费观看| 亚洲美女一区二区三区| 全部免费毛片免费播放| 老汉精品免费AV在线播放| 亚洲av无码av在线播放| 日本红怡院亚洲红怡院最新| 成年男女免费视频网站| 国产精品99爱免费视频| 久久精品国产99国产精品亚洲| 亚洲欧洲日产国码高潮αv| 四虎1515hh永久久免费| 国产免费人成视频在线播放播| 亚洲乱码一区av春药高潮| 亚洲精品动漫人成3d在线| 99久久99久久精品免费看蜜桃| 成人免费夜片在线观看| 亚洲国产理论片在线播放| 亚洲精品一级无码鲁丝片| 成人网站免费观看| 日韩免费观看一区| 免费一级特黄特色大片| 久久久久久免费一区二区三区| 亚洲另类春色校园小说| 亚洲国产精品无码久久久不卡| 日本免费一二区在线电影| aⅴ在线免费观看| 国产亚洲精品免费视频播放| 立即播放免费毛片一级| 国产亚洲精品VA片在线播放| 亚洲一区免费观看| 国产l精品国产亚洲区在线观看| 免费一级做a爰片性色毛片| 成年女人看片免费视频播放器| 69精品免费视频| 美女在线视频观看影院免费天天看| 欧亚一级毛片免费看| 亚洲乱码av中文一区二区|