• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LatJUG. JSF2.0 - The JavaEE6 Standard
 

LatJUG. JSF2.0 - The JavaEE6 Standard

on

  • 1,086 views

Java User Group Latvia

Java User Group Latvia
February 2011
JSF2.0 - The JavaEE6 Standard
Arkadi Shishlov
http://goo.gl/rzD0q

Statistics

Views

Total Views
1,086
Views on SlideShare
1,009
Embed Views
77

Actions

Likes
0
Downloads
10
Comments
0

5 Embeds 77

http://jujo00obo2o234ungd3t8qjfcjrs3o6k-a-sites-opensocial.googleusercontent.com 59
http://jugpreview.tumblr.com 12
http://www.jug.lv 3
http://jug.lv 2
http://www.tumblr.com 1

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • у нас есть 50 минут\nкратко расскажу о JSF v2\nкратко, потому что тема очень обширная\n
  • я пришел сюда не только себя показать и на других посмотреть но и поделится технологическим открытием которое я сделал для себя\nи донести до вас некоторый энтузиазм с этим связанный \nнадеюсь что после презентации вы запишите в перерыве в блокнот: надо попробовать\nитак, для кого эта презентация:\n1. скептик обжегшийся на 1.x или считающий, что технология слишком сложна\nда, сравнительно сложна, но и успешно решает поставленные перед ней задачи\n2. подражатель желающий начать использовать, но по какой-то причине стоящий в стороне: время, ...\n3. разрабочик бизнес ИС\n\n
  • распространненый и используемый фреймворк\nсемейство ЕЕ6\nкорпоративный стандарт и приемственность - разговор с it менеджером/decision maker-ом\nпродуктивность в создании бизнес приложений, в чем-то субьективное но в сравнении многии со мной согласяться\nзащищеность вложений времени и экспертизы\n
  • совместимость с ЕЕ стандартом и Спринг\nкорректность, в качестве уже решенных проблем (например cross-site scripting ) и применяемой идеологии построения приложения\nподдерживает АЯКС, Пуш и т.д.\nможет работать в Servlet 2.5 контейнере\n
  • компонентая архитектура - виджеты и т.д., например в 2.0 - композиты, fusion middleware - taskflow\nсерверный - в противоположность ГВТ - клиентский, рассмотрим позже\nбольше подходит для информационных бизнес систем\n
  • -5min\nикс-эм-эл упразднен для основных и наиболее часто встречаемых задач: навигация и определение бинов, остается как сетап *параметров* фреймворка, но можно продолжать использовать\nконфигурация по умолчанию, не-меджик, по типу РоР\nпостроен на модных аннотациях\nвзаимодействие с АЯКС-ом определено и оптимизировано, исключает построение *на костылях* и фатальную несовместимость библиотек компонентов\nупрощено создание композитных компонентов до одного xhtml-а\nновые сферы действия бинов: view, flash, custom; но за рамками JSR-314 остались conversation (seam), window (icefaces), process (fusion)\nопционально может использовать bean validation framework (hibernate validator) для проверки модели, но есть грабли с поисковыми формами\nдополнение к листенерем фаз запроса появились системные события жизненого цикла приложения и события конкретных виджетов/компонентов которые также всплывают до уровня апликации \nfacelets как движок темплейтов\nобработка GET запросов с отображением параметров на модель и создание букмарков\n
  • -8min\nкомпоненты по типу Свинга, композиты\nпохоже на иерархию ХТМЛ но это не ЖСП, а живое дерево компонентов обрабатывающее входящий запрос и генерирующее ХТМЛ\nкомпонент реализует АПИ\n\n
  • как уже сказал, генерируем презентацию на сервере\nдоступны все возможности Java и серверного окружения\nнет проблем с DTO, например\n
  • презентационный уровень начинается с xhtml файла с описанием дерева компонентов\nотображает модель, как именно - через EL, который рассмотрим позже\nмодель - это граф java pojo обьектов/managed бинов\nуправляемый компонент реагирует через action listener-ы и может менять модель (action listener) и/или вызвать навигацию (action)\n\n
  • отступление: почему на английском - терминология к которой мы привыкли\nно чтобы не ломать язык я сделал перевод\nвообще, есть статистически достоверно зафиксированное исследование, что люди плохо воспринимают если читать им дословно со слайдов\nу нас преймущество - разные языки\nитак, визуальные компоненты отображаются на управляемые компоненты и модель которую они содержат (включают)\nсферы: application, session, view, request, flash, custom (conversation, window, process)\nуправляемый компонент реагирует через action listener-ы и может менять модель (action listener) и/или вызвать навигацию (action)\n\n
  • \n
  • связку между визульной частью и упрявляемыми обьектами осуществляет expression language UEL\nсуществут за рамками JSF, в JSP\n\n
  • AJAX реализован как то, что только часть значений идет на сервер асинхронно и обрабатывается частью дерева компонентов\nс сервера приходят измениния визуального состояния под-деревьев компонентов\nэти два дерева могут совпадать, а могут и нет\nмогут быть больше 1 под-дерева, обычно это несколько компонентов\nкнопка+поля->список\nтребутся явное указание что поменяеться для скорости, чтобы не опрашивать всю модель\nисключение - icefaces\n
  • в основе управляемых обьектов лежит CDI, взаимодействует с EE6 CDI (Weld)\nвзаимодействует с Spring-овым CDI так и его эмуляцией для не-ЕЕ серверов\nможно использовать EJB, в том числе как backing bean @Named\nвкусности припасены в Seam v3 - conversation scope\n
  • \n
  • -23min\n
  • \n
  • -26min\nделаю проект на ГВТ\n1:1\n\n
  • JSR 314 - JSF 2.0\nJSR 316 - EE6 @javax.annotation.ManagedBean, no EL, no scope\nJSR 299 - EE6 CDI, Weld\nJSR 330 - JavaSE DI\nSpring Framework, also supports JSR 330, 316, proprietary scopes\nJSR 250 - Common Annotations for the Java Platform\n
  • -31min\n
  • \n
  • 41min\n
  • \n

LatJUG. JSF2.0 - The JavaEE6 Standard LatJUG. JSF2.0 - The JavaEE6 Standard Presentation Transcript

  • JSF 2.0The Java EE 6 standard arkadi.shishlov@gmail.com
  • Who? • JSF skeptic • JSF want to beTry JSF 2.x • IS developerlater thisweek...
  • Why?• Well-known - EE6?• Java EE 6 family technology - Yes - Go for it!• Acceptance• Productivity• Knowledge investment
  • Technology• EE stack(s) compatibility• Correctness, best-practices• Web 2.0• Java EE 5 compatible servlet based runtime
  • Technology• Component architecture• Server-side• IS oriented• Develop in Java
  • JSF 1.x upgrade finally!• No XML • Bean validation• Convention over • System Events Configuration • Facelets• @Annotation driven • HTTP GET support• Standardized AJAX • Verbatim HTML• Simplified Composites • Redirect to view• New bean scopes
  • Component based• Widgets: buttons, tables, etc.• Component tree• API• HTML supplemented with JavaScript, CSS, resources
  • Server side• Generates HTML or DOM update• Full Java EE runtime
  • Page oriented• One .xhtml - one interface page - one component tree serving the request• Single page interface possible• Defines View
  • управляемый компонент Managed beans• Components mapped to managed beans - backing bean• Scoped (сфера действия)• Supports model• Implements controller and action handlers
  • Request lifecycle
  • Expression Language• ${bean.field.next} – Bean.getField() immediate R-value• #{bean.field.next.whatever.more} deferred R- and L-value, function• #{nested.objects.via.get.set.hashes.arrays[123].too}• ClassName → #{className.fieldWithAccessor}• arithmetics, conditionals
  • AJAX• Partial submit• Partial sub-tree traversal• DOM updates
  • Integration• Context Dependency Injection• Weld and Spring• EJB• Seam v3 Framework (alpha/beta)
  • • Converters • Portlet bridge• Validators • Error handling• Events • Security• Phase Listeners • Custom components• Behaviors • Composites• HTML/JavaScript/CSS • Human behavior integration• Resources• I18N• HTTP GET
  • Core• Sun Mojarra - JSF 2.0 Reference Implementation (RI)• Apache MyFaces
  • Products• PrimeFaces • Apache Trinidad• JBoss RichFaces • Apache Tomahawk• ICEFaces • Oracle Fusion Middleware• OpenFaces • PrettyFaces • PrettyTime
  • JSF vs GWTapples to oranges server vs client DTO resources xml against layout code
  • Issues• Runtime bugs• MS IE• Render phase errors• (non-)Serializable beans• Which CDI?• Session loss
  • Tooling• NetBeans 6.9.1, Tomcat, GlassFish• Instant smart redeploy• Continuos integration with NetBeans ANT scripts
  • 1. Java EE 6 Tutorial http://download.oracle.com/javaee/6/tutorial/doc/bnadp.html2. http://javaserverfaces.dev.java.net/3. http://www.laliluna.de/articles/jsf-2-evaluation-test.html4. http://andyschwartz.wordpress.com/2009/07/31/whats-new-in-jsf-2/5. http://www.coreservlets.com/JSF-Tutorial/jsf2/6. http://jsftutorials.net/7. http://jsfcentral.com/8. http://www.ibm.com/developerworks/java/library/j-jsf2fu1/9. http://weblogs.java.net/blog/cayhorstmann/archive/2009/12/23/ javaxfacesbeanmanagedbean-dead-arrival10. http://dmakariev.blogspot.com/ (deltaset.org Maven archetype, GAE deploy)11. http://docs.jboss.org/weld/reference/1.0.0/en-US/html_single
  • Demo
  • Q&A