JFinal 2.2 發布,用 JFinal 開發,就這么定了!
JFinal 2.2 主要針對于 2.1 版本中反饋集中的幾個問題進行改進,另外也讓jfinal 2.1非最終版用戶升為統一的版本。
1:改進paginate
在2.1 版中使用了正則對paginate方法匹配 select 與 group by 元素,為了性能采用粗放的正則時,則無法實現復雜sql的精確匹配,而為了精確匹配使用細致冗長的正則時,則性能急劇下降,簡單sql相對于復雜sql甚至有上千倍的性能差距,權衡之下2.2 版棄用對select、group by的正則匹配,拆分sql為select及sqlExceptSelect,事實證明此法簡單、粗爆、高效、可靠。此外,對 paginate 方法添加了 boolean isGroupBySql參數重載方法,用于強制指定sql語句是否為grup by sql。
2:改進ModelRecordElResolver
添加setResolveBeanAsModel(boolean) ,設置為true時,用于指定在JSP/jstl中,對待合體后的Bean仍然采用老版本對待Model的方式輸出數據,也即使用 Model.get(String attr)而非Bean的getter方法輸出數據,有利于在關聯查詢時輸出無 getter 方法的字段值。建議mysql數據表中的字段采用駝峰命名,表名采用下劃線方式命名便于win與linux間移植。
注意:這里所指的 Bean 僅僅指用 BaseModelGenerator 生成的實現了 IBean接口后的Model類。
使用方法,在 YourJFinalConfig 中創建方法,并調用本方法:
public void afterJFinalStart() { ModelRecordElResolver.setResolveBeanAsModel(true); }
當老版本項目升級到 jfinal 2.2 并且使用了生成器生成Bean,但又想保持原來的jsp輸出方式,可將該變量設置為true。
3:maven升級坐標,已推送至中心庫,可立即升級
<dependency> <groupId>com.jfinal</groupId> <artifactId>jfinal</artifactId> <version>2.2</version> </dependency>
強烈建議 jfinal 2.1 升級至 2.2
change log:
1:改進paginate,sql參數為 select與sqlExceptSelect,簡單、粗爆、高效、可靠。
2:添加boolean isGroupBy 的pagiante重載方法,用于強制指定sql語句是否為grup by sql
3:改進ModelRecordElResolver,添加setResolveBeanAsModel(),使用生成器生成的實現了IBean接口的 Class 將被當成 Model來處理
4:改進Controller中cookie操作,默認path值設置為"/",避免某些瀏覽器不支持無默認path
5:Jackson、JFinalJson 中 private 可見性改為protected,便于擴展出個性化 json 轉換實現
6:改進CaptchaRender,添加CaptchaRender.setCaptchaName()方法便于定義captchName,cookie的path設置為 "/"
7:改進Model、Db 的 paginate 方法
8:FileRender.encodeFileName() 改為 protected 便于擴展,字符集改為使用 getEncoding() 來獲取
ONE MORE THING:狂掃下方JFinal官方微信二維碼,隨時關注JFinal CMS開發動態
2016 用JFinal開發,就這么定了!!!
來自: http://www.oschina.net//news/70001/jfinal-2-2