開發(fā)心得
對于開發(fā)對于頁面連接尤如蜘蛛網(wǎng)一樣,經(jīng)常會有一堆具有千頭萬緒的關(guān)聯(lián)頁面組成的大中型Web應(yīng)用來說,如何組織及處理頁面的跳轉(zhuǎn)成為一個MVC框架非常關(guān)鍵因素。Struts1之所以能得到大家的認(rèn)可,是因?yàn)樗窘鉀Q了數(shù)據(jù)與視圖分離的問題,之所以Struts升級一個版本到Struts2后不再“Struts”了,核心原因除了框架核心技術(shù)落后、很多地方受限制以外,一個原因是他無法很好地組織及處理頁面跳轉(zhuǎn)問題。當(dāng)然盡管升級到了Struts2,但相對于Rails等新興MVC的框架來說,顯得死板了很多。 而EasyJWeb在頁面組織及處理頁面跳轉(zhuǎn)等方面,提供了很多更加靈活的功能,很多思想來自于Spring MVC、Rails等一些新興Web框架的精髓,他能讓你用比較簡潔的代碼、甚至不用代碼來實(shí)現(xiàn)頁面的跳轉(zhuǎn)。 在Web應(yīng)用程序開發(fā)中,我們經(jīng)常遇到如下的需求: 1、從這個頁面連接到另外一個頁面; 2、在服務(wù)器執(zhí)行完某一段程序后,把輸出導(dǎo)向另外一個頁面; 3、在服務(wù)器端執(zhí)行完某一段程序后,把輸出導(dǎo)向到另外一段程序繼續(xù)執(zhí)行; 4、在服務(wù)器程序執(zhí)行完后,選擇使用一個頁面呈現(xiàn)用戶輸出; 5、頁面跳轉(zhuǎn)要具有較強(qiáng)的環(huán)境適應(yīng)能力,比如部署在跟目錄下跟部署到其它Context目錄下都能執(zhí)行正確的跳轉(zhuǎn); 6、還有更變態(tài)的,比如EasyJF官網(wǎng),要求使用動態(tài)地址訪問的時候,看到的地址全是動態(tài),當(dāng)使用靜態(tài)地址訪問的時候,地址全是靜態(tài)的,Java Web服務(wù)器不能工作了,Apache或IIS也要保證網(wǎng)頁能正常訪問。 7、有的人喜歡使用/user/edit/1這樣的url,有的人喜歡使用/user.ejf?cmd=edit&id=1這樣的url,我們要求不管使用哪一種url樣式訪問頁面,連接都會非常友好的變成用戶喜愛的形式。
可以說,現(xiàn)在很少有框架能完全滿足或者為用戶考慮到如此復(fù)雜多變而對于我們國人來說應(yīng)用性又非常廣泛的需求。一些框架即使提供上面一些功能也是以書寫復(fù)雜的代碼及配置文件為代價(jià)的。在EasyJWeb中,提供了上面所列的這些功能,并提供了非常簡潔的調(diào)用接口及方法。 針對上面的幾點(diǎn),EasyJWeb的解決方案: 1,這個用<a>標(biāo)簽,不用說了。 2、在服務(wù)器執(zhí)行完某一段程序后,把輸出導(dǎo)向另外一個頁面; 返回html類型的Page對象。 3、在服務(wù)器端執(zhí)行完某一段程序后,把輸出導(dǎo)向到另外一段程序繼續(xù)執(zhí)行; 使用forward或者go方法。 4、在服務(wù)器程序執(zhí)行完后,選擇使用一個頁面呈現(xiàn)用戶輸出; 使用page方法。 5、頁面跳轉(zhuǎn)要具有較強(qiáng)的環(huán)境適應(yīng)能力,比如部署在跟目錄下跟部署到其它Context目錄下都能執(zhí)行正確的跳轉(zhuǎn); 在頁面模板中使用$html.url,比如:<a href="$html.url('user.list')">用戶列表</a>。 6、不同地址樣式轉(zhuǎn)移 在頁面模板中使用$html.forward,比如<a href="$html. forward'('news.technic')">技術(shù)前沿</a>。這樣動態(tài)的時候訪問到的是news.ejf?cmd= technic,靜態(tài)的時候訪問到的是/news/technic.html。 7、傳統(tǒng)及現(xiàn)代的URL樣式轉(zhuǎn)換 仍然是使用$html.url,或$html.forward標(biāo)簽,他能感知你的url樣式。比如:<a href="$html.url('user.add')">添加用戶</a>。你使用user.ejf?cmd=lsit,訪問應(yīng)用,則當(dāng)點(diǎn)添加user.ejf?cmd=add。而如果你使用/ejf/user/list訪問應(yīng)用,則編輯按鈕的連接變成ejf/user/add。 在代碼中,除了可以使用最原始的return new Page()方式返回用戶的視圖模板以外,還可以使用一些快捷方法來實(shí)現(xiàn)靈活的視圖查詢及跳轉(zhuǎn)。比如,go、forward、page等方法。下面看一個用戶添刪改查的示例中的Action代碼如下:
Powered by: BlogJava Copyright © java fan nb