JavaServer Faces (JSF) — це каркас вебзастосунків написаний на Java. Він служить для того, щоб полегшувати розробку користувацьких інтерфейсів для Java EE застосунків. На відміну від більшості MVC фреймворків, які керуються запитами, підхід JSF ґрунтується на використанні компонентів. Стан компонентів користувацького інтерфейсу зберігається, коли користувач запитує нову сторінку й потім відновлюється, якщо запит повторюється. Для відображення даних звичайно використовується JSP, але JSF можна пристосувати й під інші технології, наприклад XUL.
Тип | каркас вебзастосунків |
---|---|
Автор | Sun Microsystems |
Розробник | Eclipse Foundation[1] |
Стабільний випуск | 2.3.9 (Mojarra Reference Implementation) (16 листопада 2018 ) |
Нестабільний випуск | 2.4.0 SNAPSHOT (Mojarra Reference Implementation) |
Платформа | Java EE |
Мова програмування | Java |
Ліцензія | d і d |
Репозиторій | github.com/jakartaee/faces |
Вебсайт | javaserverfaces.dev.java.net |
|
Коротко
Переваги
- генерація серверної частини інтерфейсу користувача
- базується на компонентах(ніякого HTML)
- наявна обробка подій(event) та станів(states)
- різноманітні view-технології — не тільки HTML та JavaScript
- розробка з урахуванням доступного інструментарію
- наявний стандарт і він включений до Java EE
- рольова модель розробки веб
Недоліки
- потрібно багато часу для вивчення та освоєння технології
- потребуються потужні обчислювальні можливості серверу
Детально
Специфікація
Користь технології JSF обумовлена, в першу чергу, наявністю специфікації JSF. Специфікація дозволяє розробляти JSF фреймворки з різним призначенням та різною внутрішньою структурою. Вона лиш гарантує, що фреймворк буде підпорядкований певній структурі. Але з іншого боку специфікація дуже обмежує еталонну реалізацію в освоєнні нових можливостей. Тобто наприклад ajax-технології такі як Ajax4JSF включають дуже багато інтеграційного коду який виникає через потребу в узгодженні еталонної реалізації з основними вимогами специфікації. Можна відмітити, що сама специфікація розроблена досить неоднорідно. Плюсами специфікації є: дерево компонентів, підтримка різних технологій представлення(JSP, Facelets), підтримка різноманітних рендерерів — класів, що відповідають за відображення компоненту, підтримка обробки подій і перевіркою інформації, що вводиться, визначення навігації, а також підтримку інтернаціоналізації (і18n) і доступності (accessibility). Але є й недоліки: дуже великий обсяг коду для реалізації ітераційних компонентів, відсутності обробки повідомлень в середині ітераційного компоненту, великий обсяг шаблонного коду, який можна було б опустити, при реалізації власних компонентів(custom component), непродуманість певних архітектурних рішень в специфікації, щодо реалізації ajax, управління станом дерева компонентів, пошуку по дереву компонентів. Специфікація JSF 1.0 та 1.1 була розроблена завдяки Java Community Process як JSR 127, а JSF 1.2 як JSR 252. Майбутня JSF 2.0 буде розроблена як JSR 314. Сама специфікація не належить до жодної компанії і розроблюється групою експертів з таких відомих компаній як Sun, Oracle, IBM, Novell, Macromedia, , Hewlett-Packard, Siemens AG. Таким чином технологію JSF можна віднести до відкритих стандартів.
Еталонна реалізація
Група експертів підтримує в актуальному стані еталонну реалізацію(reference implementation) JSF. Це дозволяє, як використовувати її в реальних вебзастосунках, так і розвивати інші реалізації конкурентів. Гарними сферами застосування еталонної реалізації JSF є корпоративні вебсайти, та маленькі вебсайти, на зразок вебмагазину. Для великих вебсайтів з великою кількістю компонентів JSF не підійде. Це обумовлено тим що еталонна реалізація має деякі проблеми, що пов'язанні із надлінійним зменшенням швидкодії при збільшенні компонентного дерева. Різні експерти пов'язують це з непродуманістю підсистеми збереження стану та системи зв'язування компонентів.
За специфікацією реалізація JSF повинна підтримувати багато різноманітних точок розширення, що дозволяють змінити поведінку JSF-застосунку. Такими точкам розширення є: 5 етапів циклу обробки запиту(JSF life cycle), навігаційна логіка(navigation handler), абстрактна система інтерпретації виразів(EL) JSF. Також розробнику вебзастосунків дозволяється розробляти свої компоненти, свої рендерери, валідаційні компоненти, компоненти перетворювачі, будувати дерева компонентів програмним шляхом. Це все свідчить на користь того, що JSF являє собою вельми абстрактну платформу для реалізації різноманітних вебзастосунків, але певні перепони із швидкістю заважають використовувати її в великих вебпроектах, що мають певні вимоги по швидкості виконання запитів.
Версії JSF
- JSF 1.0 (11.03.2004) — первісний реліз по специфікації JSF
- JSF 1.1 (27.05.2004) — виправлення помилок. Істотних змін немає.
- JSF 1.2 (11.05.2006) — виправлення в ядрі й API, включено в Java EE 5
- JSF 2.0 (28.06.2009) — основний реліз (major release), переглянуто специфікації з урахуванням досвіду розробки, розширено функціональність, покращено продуктивність, включено в Java EE 6.
- JSF 2.1 (22.10.2010) — лише незначні зміни.
- JSF 2.2 (16.04.2013) — Представлені нові концепції, такі як представлення без стану, потік сторінок і можливість створювати стерпні контракти ресурсів.
- JSF 2.3 (28.03.2017) — Основні можливості: пошук виразів, URL без розширень, перевірка bean-компонентів для повних класів, push-повідомлення з використанням WebSocket, поліпшена інтеграція з CDI.
Реалізації JSF
- MyFaces http://myfaces.apache.org/ [ 28 червня 2009 у Wayback Machine.]
- Mojarra https://javaserverfaces.github.io/ [ 28 червня 2019 у Wayback Machine.]
- Sun JSF Reference Implementation
Підтримка IDE
- IntelliJ IDEA
- Eclipse JSF Tools Project [ 7 жовтня 2008 у Wayback Machine.]
- NetBeans Visual Web Pack (недоступний починаючи з NetBeans 6.8)
Бібліотеки компонентів
- PrimeFaces http://www.primefaces.org/ [ 23 вересня 2011 у Wayback Machine.]
- Tomahawk http://myfaces.apache.org/tomahawk/ [ 28 травня 2014 у Wayback Machine.]
- Tobago http://myfaces.apache.org/tobago [ 25 грудня 2007 у Wayback Machine.]
- Trinidad http://myfaces.apache.org/trinidad [ 24 грудня 2014 у Wayback Machine.]
- ICEfaces http://www.icefaces.org/ [ 5 липня 2008 у Wayback Machine.]
- RichFaces http://www.richfaces.org/ [ 29 вересня 2009 у Wayback Machine.]
- Netadvantage http://www.infragistics.com/ [ 24 грудня 2007 у Wayback Machine.]
- BluePrints https://blueprints.dev.java.net/ajaxcomponents.html[недоступне посилання з лютого 2019]
- JBossRichFaces http://richfaces.jboss.org/ [ 1 січня 2015 у Wayback Machine.]
- ILOG JSF tools
- ADF http://www.oracle.com/technetwork/developer-tools/adf/overview/index-092391.html [ 11 січня 2015 у Wayback Machine.]
- Backbase http://www.backbase.com/ [ 26 грудня 2007 у Wayback Machine.]
- Simplica http://www.simplica.com/ [ 26 грудня 2007 у Wayback Machine.]
Примітки
- https://projects.eclipse.org/projects/ee4j.faces
- . Архів оригіналу за 16 березня 2015. Процитовано 12 січня 2015.
- . Архів оригіналу за 24 грудня 2014. Процитовано 12 січня 2015.
Література
- Jonas Jacobi, John R. Fallows: Pro JSF and Ajax, Apress,
- Chris Schalk, Ed Burns, James Holmes: JavaServer Faces: The Complete Reference, McGraw-Hill Osborne Media,
- David Geary, Cay Horstmann: Core JavaServer Faces, Second Edition, Prentice-Hall, 2007
- Kito D. Mann: JavaServer Faces in Action, Manning Publications Company, 2005
- Bill Dudney, Jonathan Lehr, Bill Willis, eRoy Mattingly: Mastering JavaServer Faces, John Wiley & Sons, 2004
- Hans Bergsten: JavaServer Faces, O'Reilly & Associates,
- Budi Kurniawan, Nancy Maragioglio: JavaServer Faces Programming, McGraw-Hill Osborne Media,
- James Turner, Craig McClanahan, Kunal Mittal: JavaServer Faces Kick Start, SAMS,
- John Ferguson Smart: JSF Jumpstart — A tutorial introduction to building web sites using JSF, published in electronic form.
Це незавершена стаття про програмне забезпечення. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
JavaServer Faces JSF ce karkas vebzastosunkiv napisanij na Java Vin sluzhit dlya togo shob polegshuvati rozrobku koristuvackih interfejsiv dlya Java EE zastosunkiv Na vidminu vid bilshosti MVC frejmvorkiv yaki keruyutsya zapitami pidhid JSF gruntuyetsya na vikoristanni komponentiv Stan komponentiv koristuvackogo interfejsu zberigayetsya koli koristuvach zapituye novu storinku j potim vidnovlyuyetsya yaksho zapit povtoryuyetsya Dlya vidobrazhennya danih zvichajno vikoristovuyetsya JSP ale JSF mozhna pristosuvati j pid inshi tehnologiyi napriklad XUL JavaServer FacesTipkarkas vebzastosunkivAvtorSun MicrosystemsRozrobnikEclipse Foundation 1 Stabilnij vipusk2 3 9 Mojarra Reference Implementation 16 listopada 2018 5 rokiv tomu 2018 11 16 Nestabilnij vipusk2 4 0 SNAPSHOT Mojarra Reference Implementation PlatformaJava EEMova programuvannyaJavaLicenziyad i dRepozitorijgithub com jakartaee facesVebsajtjavaserverfaces dev java net Mediafajli u VikishovishiKorotkoPerevagi generaciya servernoyi chastini interfejsu koristuvacha bazuyetsya na komponentah niyakogo HTML nayavna obrobka podij event ta staniv states riznomanitni view tehnologiyi ne tilki HTML ta JavaScript rozrobka z urahuvannyam dostupnogo instrumentariyu nayavnij standart i vin vklyuchenij do Java EE rolova model rozrobki vebNedoliki potribno bagato chasu dlya vivchennya ta osvoyennya tehnologiyi potrebuyutsya potuzhni obchislyuvalni mozhlivosti serveruDetalnoSpecifikaciya Korist tehnologiyi JSF obumovlena v pershu chergu nayavnistyu specifikaciyi JSF Specifikaciya dozvolyaye rozroblyati JSF frejmvorki z riznim priznachennyam ta riznoyu vnutrishnoyu strukturoyu Vona lish garantuye sho frejmvork bude pidporyadkovanij pevnij strukturi Ale z inshogo boku specifikaciya duzhe obmezhuye etalonnu realizaciyu v osvoyenni novih mozhlivostej Tobto napriklad ajax tehnologiyi taki yak Ajax4JSF vklyuchayut duzhe bagato integracijnogo kodu yakij vinikaye cherez potrebu v uzgodzhenni etalonnoyi realizaciyi z osnovnimi vimogami specifikaciyi Mozhna vidmititi sho sama specifikaciya rozroblena dosit neodnoridno Plyusami specifikaciyi ye derevo komponentiv pidtrimka riznih tehnologij predstavlennya JSP Facelets pidtrimka riznomanitnih rendereriv klasiv sho vidpovidayut za vidobrazhennya komponentu pidtrimka obrobki podij i perevirkoyu informaciyi sho vvoditsya viznachennya navigaciyi a takozh pidtrimku internacionalizaciyi i18n i dostupnosti accessibility Ale ye j nedoliki duzhe velikij obsyag kodu dlya realizaciyi iteracijnih komponentiv vidsutnosti obrobki povidomlen v seredini iteracijnogo komponentu velikij obsyag shablonnogo kodu yakij mozhna bulo b opustiti pri realizaciyi vlasnih komponentiv custom component neprodumanist pevnih arhitekturnih rishen v specifikaciyi shodo realizaciyi ajax upravlinnya stanom dereva komponentiv poshuku po derevu komponentiv Specifikaciya JSF 1 0 ta 1 1 bula rozroblena zavdyaki Java Community Process yak JSR 127 a JSF 1 2 yak JSR 252 Majbutnya JSF 2 0 bude rozroblena yak JSR 314 Sama specifikaciya ne nalezhit do zhodnoyi kompaniyi i rozroblyuyetsya grupoyu ekspertiv z takih vidomih kompanij yak Sun Oracle IBM Novell Macromedia Hewlett Packard Siemens AG Takim chinom tehnologiyu JSF mozhna vidnesti do vidkritih standartiv Etalonna realizaciya Grupa ekspertiv pidtrimuye v aktualnomu stani etalonnu realizaciyu reference implementation JSF Ce dozvolyaye yak vikoristovuvati yiyi v realnih vebzastosunkah tak i rozvivati inshi realizaciyi konkurentiv Garnimi sferami zastosuvannya etalonnoyi realizaciyi JSF ye korporativni vebsajti ta malenki vebsajti na zrazok vebmagazinu Dlya velikih vebsajtiv z velikoyu kilkistyu komponentiv JSF ne pidijde Ce obumovleno tim sho etalonna realizaciya maye deyaki problemi sho pov yazanni iz nadlinijnim zmenshennyam shvidkodiyi pri zbilshenni komponentnogo dereva Rizni eksperti pov yazuyut ce z neprodumanistyu pidsistemi zberezhennya stanu ta sistemi zv yazuvannya komponentiv Za specifikaciyeyu realizaciya JSF povinna pidtrimuvati bagato riznomanitnih tochok rozshirennya sho dozvolyayut zminiti povedinku JSF zastosunku Takimi tochkam rozshirennya ye 5 etapiv ciklu obrobki zapitu JSF life cycle navigacijna logika navigation handler abstraktna sistema interpretaciyi viraziv EL JSF Takozh rozrobniku vebzastosunkiv dozvolyayetsya rozroblyati svoyi komponenti svoyi rendereri validacijni komponenti komponenti peretvoryuvachi buduvati dereva komponentiv programnim shlyahom Ce vse svidchit na korist togo sho JSF yavlyaye soboyu velmi abstraktnu platformu dlya realizaciyi riznomanitnih vebzastosunkiv ale pevni pereponi iz shvidkistyu zavazhayut vikoristovuvati yiyi v velikih vebproektah sho mayut pevni vimogi po shvidkosti vikonannya zapitiv Versiyi JSF JSF 1 0 11 03 2004 pervisnij reliz po specifikaciyi JSF JSF 1 1 27 05 2004 vipravlennya pomilok Istotnih zmin nemaye JSF 1 2 11 05 2006 vipravlennya v yadri j API vklyucheno v Java EE 5 JSF 2 0 28 06 2009 osnovnij reliz major release pereglyanuto specifikaciyi z urahuvannyam dosvidu rozrobki rozshireno funkcionalnist pokrasheno produktivnist vklyucheno v Java EE 6 JSF 2 1 22 10 2010 lishe neznachni zmini JSF 2 2 16 04 2013 Predstavleni novi koncepciyi taki yak predstavlennya bez stanu potik storinok i mozhlivist stvoryuvati sterpni kontrakti resursiv JSF 2 3 28 03 2017 Osnovni mozhlivosti poshuk viraziv URL bez rozshiren perevirka bean komponentiv dlya povnih klasiv push povidomlennya z vikoristannyam WebSocket polipshena integraciya z CDI Realizaciyi JSF MyFaces http myfaces apache org 28 chervnya 2009 u Wayback Machine Mojarra https javaserverfaces github io 28 chervnya 2019 u Wayback Machine Sun JSF Reference ImplementationPidtrimka IDE IntelliJ IDEA Eclipse JSF Tools Project 7 zhovtnya 2008 u Wayback Machine NetBeans Visual Web Pack nedostupnij pochinayuchi z NetBeans 6 8 Biblioteki komponentiv PrimeFaces http www primefaces org 23 veresnya 2011 u Wayback Machine Tomahawk http myfaces apache org tomahawk 28 travnya 2014 u Wayback Machine Tobago http myfaces apache org tobago 25 grudnya 2007 u Wayback Machine Trinidad http myfaces apache org trinidad 24 grudnya 2014 u Wayback Machine ICEfaces http www icefaces org 5 lipnya 2008 u Wayback Machine RichFaces http www richfaces org 29 veresnya 2009 u Wayback Machine Netadvantage http www infragistics com 24 grudnya 2007 u Wayback Machine BluePrints https blueprints dev java net ajaxcomponents html nedostupne posilannya z lyutogo 2019 JBossRichFaces http richfaces jboss org 1 sichnya 2015 u Wayback Machine ILOG JSF tools ADF http www oracle com technetwork developer tools adf overview index 092391 html 11 sichnya 2015 u Wayback Machine Backbase http www backbase com 26 grudnya 2007 u Wayback Machine Simplica http www simplica com 26 grudnya 2007 u Wayback Machine Primitkihttps projects eclipse org projects ee4j faces Arhiv originalu za 16 bereznya 2015 Procitovano 12 sichnya 2015 Arhiv originalu za 24 grudnya 2014 Procitovano 12 sichnya 2015 LiteraturaJonas Jacobi John R Fallows Pro JSF and Ajax Apress ISBN 1 59059 580 7 Chris Schalk Ed Burns James Holmes JavaServer Faces The Complete Reference McGraw Hill Osborne Media ISBN 0 07 226240 0 David Geary Cay Horstmann Core JavaServer Faces Second Edition Prentice Hall 2007 ISBN 0 13 173886 0 Kito D Mann JavaServer Faces in Action Manning Publications Company 2005 ISBN 1 932394 12 5 Bill Dudney Jonathan Lehr Bill Willis eRoy Mattingly Mastering JavaServer Faces John Wiley amp Sons 2004 ISBN 0 471 46207 1 Hans Bergsten JavaServer Faces O Reilly amp Associates ISBN 0 596 00539 3 Budi Kurniawan Nancy Maragioglio JavaServer Faces Programming McGraw Hill Osborne Media ISBN 0 07 222983 7 James Turner Craig McClanahan Kunal Mittal JavaServer Faces Kick Start SAMS ISBN 0 672 32599 3 John Ferguson Smart JSF Jumpstart A tutorial introduction to building web sites using JSF published in electronic form Ce nezavershena stattya pro programne zabezpechennya Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi