JavaServer Faces

Поделись знанием:
Перейти к: навигация, поиск
JavaServer Faces
Тип

Веб-фреймворк

Разработчик

Sun Microsystems

Написана на

Java

Операционная система

Кроссплатформенное ПО

Сайт

[javaserverfaces.java.net verfaces.java.net]

К:Википедия:Статьи без изображений (тип: не указан)

JavaServer Faces (JSF) — это фреймворк для веб-приложений, написанный на Java. Он служит для того, чтобы облегчать разработку пользовательских интерфейсов для Java EE-приложений. В отличие от прочих MVC-фреймворков, которые управляются запросами, подход JSF основывается на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется когда пользователь запрашивает новую страницу и затем восстанавливается, если запрос повторяется. Для отображения данных обычно используется JSP, Facelets, но JSF можно приспособить и под другие технологии, например XUL.

Технология JavaServer Faces включает:

  • Набор API для представления компонент пользовательского интерфейса (UI) и управления их состоянием, обработкой событий и валидацией вводимой информации, определения навигации, а также поддержку интернационализации (i18n) и доступности (accessibility).
  • Специальная библиотека JSP тегов для выражения интерфейса JSF на JSP странице. В JSF 2.0 в качестве обработчика представления используется технология Facelets которая пришла на замену JSP.

Созданная быть гибкой, технология JavaServer Faces усиливает существующие стандартные концепции пользовательского интерфейса (UI) и концепции Web-уровня без привязки разработчика к конкретному языку разметки, протоколу или клиентскому устройству. Классы компонентов пользовательского интерфейса, поставляемые вместе с технологией JavaServer Faces, содержат функциональность компонент, а не специфичное для клиента отображение, открывая тем самым возможность рендеринга JSF-компонент на различных клиентских устройствах. Совмещая функциональность компонент интерфейса пользователя со специальными рендерерами, разработчики могут конструировать специальные теги для заданного клиентского устройства. В качестве удобства технология JSF предоставляет специфичный рендерер и специальную библиотеку JSP-тегов для рендеринга на HTML-клиенте, позволяя разработчикам приложений на J2EE платформе использовать технологию JSF в своих приложениях.





Версии JSF

  • JSF 1.0 (11.03.2004) — первоначальный релиз по спецификации JSF
  • JSF 1.1 (27.05.2004) — исправление ошибок. Существенных изменений нет.
  • JSF 1.2 (11.05.2006) — исправление ошибок. Существенных изменений нет.
    • улучшения дают временное решение для проблемы спутанного контента[1]
    • обеспечивается XML Schema для файлов конфигурации вместо использования DTD
    • улучшения позволяют приложениям работать с многофреймовым или многооконным пользовательским интерфейсом.
    • улучшения библиотеки тегов f: для улучшения покрытия TCK, события жизненного цикла f: view и другие небольшие усовершенствования.
    • улучшенная поддержка декоратора для объектов API
    • процедура сохранения состояния клиента стала лучше защищена.
    • решена проблема двойного нажатия кнопки
    • спецификация переразбита на стандартную и нестандартную части, чтобы сделать реализацию проще
    • исправлены ошибки связанные с портлетами
    • небольшие исправления спецификации
  • JSF 2.0 (19.10.2009) — последний на данный момент релиз. Основной пересмотр спецификации с учётом опыта разработки. Объединение с Java EE 6.

Критика

JSF версий 1.* фактически не предоставлял высокоуровневой поддержки для обработки GET-запросов[2], что существенно усложняло разработку приложений, базирующихся на REST-принципах. Во второй версии спецификации этот недостаток практически полностью устранён.

Разработчик языка Java, Джеймс Гослинг, охарактеризовал технологию JSP, лежащую в основе JSF, как «проект-клон Microsoft ASP, который был создан, только чтобы продемонстрировать насколько сама подобная идея плоха; но модель почему-то отказалась умирать»[3].

Библиотеки и компоненты

  • [www.primefaces.org/ PrimeFaces]
  • [myfaces.apache.org/ MyFaces]
  • [myfaces.apache.org/tomahawk/ Tomahawk]
  • [myfaces.apache.org/trinidad/index.html Trinidad]
  • [myfaces.apache.org/tobago/index.html Tobago]
  • [myfaces.apache.org/orchestra/index.html Orchestra]
  • [www.icefaces.org/ ICEFaces]
  • [openfaces.org/ OpenFaces]
  • RichFaces[4]

Напишите отзыв о статье "JavaServer Faces"

Примечания

  1. Hans Bergsten. [www.onjava.com/pub/a/onjava/2004/06/09/jsf.html Improving JSF by Dumping JSP] (англ.) (9 июня 2004). Проверено 8 августа 2009. [www.webcitation.org/65dAnUcsD Архивировано из первоисточника 22 февраля 2012].
  2. [andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2 Andy Schwartz Blog: What’s new in JSF2?]
  3. [www.youtube.com/watch?v=9ei-rbULWoA James Gosling on Apple, Apache, Google, Oracle and the Future of Java. 0:48:22 ]
  4. [labs.jboss.com/jbossrichfaces/ Домашняя страница RichFaces] (англ.). Проверено 1 апреля 2010. [www.webcitation.org/65dAoU74m Архивировано из первоисточника 22 февраля 2012].

Ссылки

  • [java.sun.com/javaee/javaserverfaces/ JavaServer Faces Technology]  (англ.)
  • [www.javaportal.ru/java/articles/java_Server_Faces.html Введение в Java Server Faces]  (рус.)
  • [www.ibm.com/developerworks/ru/edu/j-dw-java-jsf1-i.html?ca=drs-ru Введение в JavaServer Faces 1.2] на сайте ibm.com.  (рус.)
  • [www.quizful.net/post/jsf-example-application Пример JSF приложения на Java]  (рус.)
  • [izenfire.blogspot.com/2009/01/jsf-tomcat.html Пример JSF-приложения для Tomcat]  (рус.)
  • [javasource.ru:5050/category/jsf.xhtml Подборка статей о web-разработке на JSF]  (рус.)
  • Сравнение каркасов веб-приложений

Литература

  • Дэвид М. Гери, Кей С. Хорстманн. JavaServer Faces. Библиотека профессионала = JavaServer Faces. CORE. — 3-е изд. — М.: Издательский дом "Вильямс", 2011. — 544 с. — ISBN 978-5-8459-1706-5, 978-0-13-701289-3.


Отрывок, характеризующий JavaServer Faces

– Андрей Севастьяныч, – сказал Ростов, – ведь мы их сомнем…
– Лихая бы штука, – сказал ротмистр, – а в самом деле…
Ростов, не дослушав его, толкнул лошадь, выскакал вперед эскадрона, и не успел он еще скомандовать движение, как весь эскадрон, испытывавший то же, что и он, тронулся за ним. Ростов сам не знал, как и почему он это сделал. Все это он сделал, как он делал на охоте, не думая, не соображая. Он видел, что драгуны близко, что они скачут, расстроены; он знал, что они не выдержат, он знал, что была только одна минута, которая не воротится, ежели он упустит ее. Пули так возбудительно визжали и свистели вокруг него, лошадь так горячо просилась вперед, что он не мог выдержать. Он тронул лошадь, скомандовал и в то же мгновение, услыхав за собой звук топота своего развернутого эскадрона, на полных рысях, стал спускаться к драгунам под гору. Едва они сошли под гору, как невольно их аллюр рыси перешел в галоп, становившийся все быстрее и быстрее по мере того, как они приближались к своим уланам и скакавшим за ними французским драгунам. Драгуны были близко. Передние, увидав гусар, стали поворачивать назад, задние приостанавливаться. С чувством, с которым он несся наперерез волку, Ростов, выпустив во весь мах своего донца, скакал наперерез расстроенным рядам французских драгун. Один улан остановился, один пеший припал к земле, чтобы его не раздавили, одна лошадь без седока замешалась с гусарами. Почти все французские драгуны скакали назад. Ростов, выбрав себе одного из них на серой лошади, пустился за ним. По дороге он налетел на куст; добрая лошадь перенесла его через него, и, едва справясь на седле, Николай увидал, что он через несколько мгновений догонит того неприятеля, которого он выбрал своей целью. Француз этот, вероятно, офицер – по его мундиру, согнувшись, скакал на своей серой лошади, саблей подгоняя ее. Через мгновенье лошадь Ростова ударила грудью в зад лошади офицера, чуть не сбила ее с ног, и в то же мгновенье Ростов, сам не зная зачем, поднял саблю и ударил ею по французу.
В то же мгновение, как он сделал это, все оживление Ростова вдруг исчезло. Офицер упал не столько от удара саблей, который только слегка разрезал ему руку выше локтя, сколько от толчка лошади и от страха. Ростов, сдержав лошадь, отыскивал глазами своего врага, чтобы увидать, кого он победил. Драгунский французский офицер одной ногой прыгал на земле, другой зацепился в стремени. Он, испуганно щурясь, как будто ожидая всякую секунду нового удара, сморщившись, с выражением ужаса взглянул снизу вверх на Ростова. Лицо его, бледное и забрызганное грязью, белокурое, молодое, с дырочкой на подбородке и светлыми голубыми глазами, было самое не для поля сражения, не вражеское лицо, а самое простое комнатное лицо. Еще прежде, чем Ростов решил, что он с ним будет делать, офицер закричал: «Je me rends!» [Сдаюсь!] Он, торопясь, хотел и не мог выпутать из стремени ногу и, не спуская испуганных голубых глаз, смотрел на Ростова. Подскочившие гусары выпростали ему ногу и посадили его на седло. Гусары с разных сторон возились с драгунами: один был ранен, но, с лицом в крови, не давал своей лошади; другой, обняв гусара, сидел на крупе его лошади; третий взлеаал, поддерживаемый гусаром, на его лошадь. Впереди бежала, стреляя, французская пехота. Гусары торопливо поскакали назад с своими пленными. Ростов скакал назад с другими, испытывая какое то неприятное чувство, сжимавшее ему сердце. Что то неясное, запутанное, чего он никак не мог объяснить себе, открылось ему взятием в плен этого офицера и тем ударом, который он нанес ему.
Граф Остерман Толстой встретил возвращавшихся гусар, подозвал Ростова, благодарил его и сказал, что он представит государю о его молодецком поступке и будет просить для него Георгиевский крест. Когда Ростова потребовали к графу Остерману, он, вспомнив о том, что атака его была начата без приказанья, был вполне убежден, что начальник требует его для того, чтобы наказать его за самовольный поступок. Поэтому лестные слова Остермана и обещание награды должны бы были тем радостнее поразить Ростова; но все то же неприятное, неясное чувство нравственно тошнило ему. «Да что бишь меня мучает? – спросил он себя, отъезжая от генерала. – Ильин? Нет, он цел. Осрамился я чем нибудь? Нет. Все не то! – Что то другое мучило его, как раскаяние. – Да, да, этот французский офицер с дырочкой. И я хорошо помню, как рука моя остановилась, когда я поднял ее».
Ростов увидал отвозимых пленных и поскакал за ними, чтобы посмотреть своего француза с дырочкой на подбородке. Он в своем странном мундире сидел на заводной гусарской лошади и беспокойно оглядывался вокруг себя. Рана его на руке была почти не рана. Он притворно улыбнулся Ростову и помахал ему рукой, в виде приветствия. Ростову все так же было неловко и чего то совестно.
Весь этот и следующий день друзья и товарищи Ростова замечали, что он не скучен, не сердит, но молчалив, задумчив и сосредоточен. Он неохотно пил, старался оставаться один и о чем то все думал.
Ростов все думал об этом своем блестящем подвиге, который, к удивлению его, приобрел ему Георгиевский крест и даже сделал ему репутацию храбреца, – и никак не мог понять чего то. «Так и они еще больше нашего боятся! – думал он. – Так только то и есть всего, то, что называется геройством? И разве я это делал для отечества? И в чем он виноват с своей дырочкой и голубыми глазами? А как он испугался! Он думал, что я убью его. За что ж мне убивать его? У меня рука дрогнула. А мне дали Георгиевский крест. Ничего, ничего не понимаю!»