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