OmniFaces 2.4 在2016年7月1日正式发布了。 OmniFaces 是一个 JSF 2 的工具库,其目的是为了让 JSF 应用开发更加简单。 如果你厌倦了重塑JSFUtil或FacesUtil实用程序类,为每个JSF web应用程序定制组件,使用 taghandlers 等来解决JSF的缺点的话,OmniFaces可能是你要找的东西! 与 那些其他JSF 2库(如PrimeFaces,BootsFaces或ButterFaces)已经熟知和喜爱的美丽的视觉导向组件相反,OmniFaces也许永远不 会包含丰富的表格组件或漂亮视觉之类的东西。把OmniFaces说成是处理日常JSF API中的小缺点的实际问题和解决方法“实用工具”更为适合。 OmniFaces 2.4的新特性 0b190e4 - Components#getCurrentActionSource/ActionExpressionsAndListeners() which should ease a.o. logging JSF ajax actions #113 - <o:url> which fills the gap caused by absence of JSTL<c:url>in Facelets #258 - FullAjaxExceptionHandler got newlogExceptionoverride which allows determining the log reason #257 - of:reverseArray() to reverse an array OmniFaces 2.4的改进 ebd78a7 - f773bb6 - Scripts generated by <o:deferredScript> and CombinedResourceHandler have now by default a crossorigin="anonymous" attribute which basically enables logging via window.onerror in case script is served via CDN #250 - Issue 98 of OmniFaces 2.1 was rolled back as it caused <o:importConstants> to not run anymore during postback, and the original problem appears to be fixed in newer Mojarra versions #251 - of:formatThousandsUnit() now also supports cutting down fractions of values lower than thousand #223 - #266 - @Param now also supports injecting primitives and multi-valued parameters declared as typedListor array likeList<String>,List<Foo>,String[]andint[] e0d8e0d - 56b03cd - 0e629e - FacesViews and Faces#getRequestXxx() is now also compatible with existing URL rewrite filters running in front of it (which under the covers performs aforward()) #243 - OmniFaces does not anymore require/META-INF/context.xmlwhen running on Tomcat+Weld OmniFaces 2.4的修复: #228 - <o:tree> failed state saving when being dynamically created #236 - @Param didn't properly triggerFacesContext#isValidationFailed()whenrequired="true"is not satisfied #237 - Faces#sendFile() and FileServlet incorrectly encoded spaces in filename as+instead of%20 #238 - JsfLabelMessageInterpolator was missing the 2-argument overloaded method b149204 - Bypass possible Google Chrome bug when FileServlet is used with Gzip enabled #227 - #240 - <o:validateBean> failed in composite component inputs and also with dynamic properties in ui:repeat #234 - <o:socket> caused exceptions in Tomcat when code sends too many messages in short time 0f554c0 - FacesConfigXml#getSupportedLocales() failed to parselanguage_COUNTRYlocales #248 - #111 - FullAjaxExceptionHandler failed to handle exceptions during render response phase in two Mojarra-related corner cases #252 - of:formatThousandsUnit() incorrectly trimmed trailing zeroes from non-fractional integer numbers #245 - #259 - #199 - @ViewScoped destroyed too soon when<p:commandLink ajax="false">was used, and unload submitted to the wrong URL when a forward navigation was used #264 - ListIndexConverter threwNumberFormatExceptioninstead of conversion error when empty input was submitted 273 - CombinedResourceHandler failed in PrimeFaces 6.0 when a component requiring a new resource is dynamically created during an ajax request (instead of just conditionally rendered) 详情请看发行日志。 OmniFaces 2.4 发布,JSF2 工具库下载地址