Java Pro-двинутый #4. JSF, CDI. Быстрый старт веб-приложения.

  Рет қаралды 39,503

BoostBrain

BoostBrain

7 жыл бұрын

Java Server Faces, JSF - фреймворк для построение пользовательского интерфейса.
Context and Dependency Injection, CDI - технология связывания данных с контекстом обработки запроса.
Обзор технологий, базовые приемы использования и практические примеры.
Привет! Меня зовут Николай и я люблю писать программы на Java и других языках. На этом канале я отказался от простого изложения общедоступных сведений о программировании, фреймворках и библиотеках. Я стараюсь подать материал так, чтобы это было понятно за максимально короткое время, быстро и просто. Использую Java, Java EE, Spring Framework, Spring Boot, а также рассказываю о смежных технологиях, протоколах, показываю лайфхаки.
У нас есть свой проект с обучением новичков программированию в условиях приближенных к реальности. Для этого создан канал BoostBrainLive - / @boostbrainlive2596

Пікірлер: 112
@svyatoiambrozii
@svyatoiambrozii 8 ай бұрын
Очень хорошее объяснение . Восхитительно!👍
@user-ys2fw2oh5u
@user-ys2fw2oh5u 7 жыл бұрын
Очередное спасибо от вашего подписчика ) Очень доступно и доходчиво. Не забрасывайте вы это дело :)
@mikhailkulak3203
@mikhailkulak3203 6 жыл бұрын
Очень доступно... Читая доки ранее в голове была путаница, что такое инъекция, что такое бин - теперь все стало на свои места. Спасибо!!))
@nikolaysokolov9027
@nikolaysokolov9027 5 жыл бұрын
Спасибо огромное! Все очень грамотно и по делу!
@Gennady_Ru
@Gennady_Ru 7 жыл бұрын
Интересное видео, особенно интересно в сравнении со Spring MVC
@gokentanmay2412
@gokentanmay2412 7 жыл бұрын
Мужик! у тебя лучшие пособия! и я не понимаю почему так мало лайков и просмотров.
@denismitroshchenko6631
@denismitroshchenko6631 6 жыл бұрын
Народ таким кладом не спешит делится!)))
@HowItWorks
@HowItWorks 5 жыл бұрын
@Larry Croft так в открытом доступе инфо. Да и устарело уже сильно.
@kartezist
@kartezist 4 жыл бұрын
@@HowItWorks в смысле устарело?
@mkrugl
@mkrugl 4 жыл бұрын
HowItWorks а что актуально тогда?
@konstantinberezkin1292
@konstantinberezkin1292 4 жыл бұрын
@@mkrugl spring, vaadin ещё есть для реализации веб-интерфейса прям в Java. В принципе для подделок небольших можно совместно использовать
@gregre8928
@gregre8928 7 жыл бұрын
Спасибо! Буду ждать следующие уроки,
@user-yo7mw6oj4p
@user-yo7mw6oj4p 7 жыл бұрын
Добрый день. А что нибудь подробно расскажите про Swing или JavaFX
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Приветствую. К сожалению или к счастью, но я ориентирован на веб-разработку, поэтому любые десктопные фреймворки в ближайшие планы не входят. Я надеюсь этот комментарий прочитают многие и изложу свою мотивацию. Моя главная цель состоит в том, чтобы 1)подготовить как можно больше людей к реальной работе программистом Java 2)пригласить к сотрудничеству тех, кто будет показывать хорошие результаты 3)пропиариться лично, чтоб мотивировать перспективных людей к сотрудничеству если посмотрите вакансии на HeadHunter, то увидите, что 99% вакансий ориентированы на веб-разработку. Дело в том, что я не только и не столько программист, но и руководитель проектов. А найти хороших специалистов в команду - это всегда проблема. Вы натолкнули меня на мысль, что мне стоило бы снять ролик на тему того, какая мотивация движет мной при работе над этим каналом.
@user-yo7mw6oj4p
@user-yo7mw6oj4p 7 жыл бұрын
Будем рады услышать ваше мнение о мотивации и перспективах, нужных навыках, и вообще про нужный стек технологий в программирования в веб разработке.
@user-qy2zk3me7j
@user-qy2zk3me7j 2 жыл бұрын
Спасибо, что сказали, что нужно убрать provided, вообще бы не догадалась! Большое спасибо за ролик!
@maxmaroff260
@maxmaroff260 4 жыл бұрын
Спасибо, огромное. Очень информативно!!!
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение?
@user-ho4ey5rm1e
@user-ho4ey5rm1e 7 жыл бұрын
спасибо за видео. жду еще
@ascar66
@ascar66 4 жыл бұрын
Видео длится 40 мин а я потратил что бы повторить это часа 4, часто появлялись ошибки, но я нашел в чем была причина. Спасибо Вам за урок!
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение?
@user-lb2ld2lq6t
@user-lb2ld2lq6t 7 жыл бұрын
Спасибо очень интересно)))
@labcontext2274
@labcontext2274 7 жыл бұрын
Огромная благодарность за шикарные уроки! В этом уроке столкнулся с небольшой проблемой, может, кому-то пригодиться решение: на этапе запуска веб-приложения Idea выдавала ошибку типа "Порт 9990 уже используется", оказывается этот порт могут использовать некоторые процессы NVidia. Нужно просто отловить этот процесс командой netstat, затем остановить и отключить запуск, и все заработает.
@derasadqwesdar4298
@derasadqwesdar4298 7 жыл бұрын
Добрый день! У Меня просьба создать ролик по пользованию Интелиджи Идеа . Чтобы он был именно как справочное пособие для пользователя в случае возникающих затруднений . Порой то что кажется элементарным для опытного пользователя для человека с нулевым багажом знаний кажется непреодолимым препятствием. В целом Вас приятно слушать . С Уважением!
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
+derasad qwesdar Спасибо за предложение, пожалуй начну обдумывать.
@eldar_ziyatdinov
@eldar_ziyatdinov 7 жыл бұрын
Кстати поддерживаю) Я хоть и опытный пользователь, но даже мне будет интересно)
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение?
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение?
@ivanulanov2377
@ivanulanov2377 5 жыл бұрын
На 10:40 поясните пожалуйста. Если нажимать clean, то по идее должно всё очиститься, а собраться должно если нажать на значёк package. Но вы его не нажимаете и у Вас собирается. Как так? В итоге пришлось догадаться, что нужно сделать именно так. Я чуть было из консоли его не собрал из-за этого)
@pavlolorreon9007
@pavlolorreon9007 7 жыл бұрын
Здравствуйте! Директорию resources нужно создавать самому, и в Project Structure помечать ее как ”Resources”? Когда я создал webapp-javaee7 Maven-ом c консоли, как в передушим видео, и открыл проект в IDEA, такой директории не было. После того как я ее создал recources/META-INF/beans.xml текс с ExampleBean все равно не отображался, в исходном коде web-страницы #{exa…}. И почему когда в IDEA я создаю проект Maven и в pom.xml подгружаю javax/javaee-web-api/7.0 при сборке в каталоге target собирается файл jar а не war как с консоли?
@lexjust
@lexjust 6 жыл бұрын
для того-чтобы IDEA корректно видела папку recources, зайдите в Project Structure (кликнут на проект и нажав shift+ctrl+alt+s) -> Modules -> выберите папку resourse -> Mark as: Resourse
@askhat1654
@askhat1654 6 жыл бұрын
Хороший пример, то на tomcat 9.0.6 + intellij 17.3 никак не запускается методом maven clean install, думаю потому что не были указаны зависимости в web.xml, почему web.xml у вас вообще нету?
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение?
@KirillFeelFree
@KirillFeelFree 7 жыл бұрын
для JAVA EE 7 создавать beans.xml не нужно, поддержка включена по умолчанию, также может не работать если не поставить область видимости бина, иначе говоря доп. аннотацию, например @Dependent: @Dependent @Named("zzz") public class Example { public String getMessage(){ return "Hello"; } }
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Спасибо за уточнения)
@KirillFeelFree
@KirillFeelFree 7 жыл бұрын
Подскажите, почему так может быть, делаю все примеры на стартовой странице index.xhtml - все работает нормально, но пытаюсь тот же самый код вставить в страницу example.xhtml - JSF код не срабатывает. Login Login: Password:
@KirillFeelFree
@KirillFeelFree 7 жыл бұрын
разобрался, у меня нужно вводить не просто контекст/страница.xhtml а контекст/faces/страница.xhtml, делаю в нетбинсе
@alexandershantyr4572
@alexandershantyr4572 6 жыл бұрын
Здравствуйте, сейчас все говорят, что JSF уже мёртв, что вы думаете по этому поводу? и что бы вы могли посоветовать как альтернативу JSF?
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
Если именно альтернатива, то есть что то похожее, то можно выбрать GWT. Если похожесть не требуется, то можно присмотреться к Play Framework, в частности его хвалит Антон Кекс, довольно автритетный человек. А если совсем уж правильно - то лучше не использовать Java-фреймворки, писать на Java только бэкенд, а фронтенд писать на JS-фреймворке.
@alexandershantyr4572
@alexandershantyr4572 6 жыл бұрын
Спасибо
@ResistBeer
@ResistBeer Жыл бұрын
Мне не предлагал создать JSF/Facelets, пришлось лезть в настройки - плагины, и там из магазина ставить JSF
@nikitamaximenko978
@nikitamaximenko978 7 жыл бұрын
Подскажите по какой причине после clean и package (успешных) не происходят изменения, необходимо вручную заменять в деплое war файл ?
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Если деплой происходил путем копирования файла, то да, его надо копировать заново. Если ссылкой(например через IDE), то должен автоматически передеплоиваться.
@KU100
@KU100 4 жыл бұрын
на 15-й минуте какой артефакт и где ты удалил чтобы запустилось приложение? все понял, ты забыл mvn clean перед сборкой:)
@explo9087
@explo9087 6 жыл бұрын
Не понимаю, но у меня в логин все предыдущие заполнеyные поля равны null. Если поставить анатация SessionScope то все нормально/
@user-hq5jc7lv7z
@user-hq5jc7lv7z 6 жыл бұрын
Здравствуйте Большое спасибо за уроки) Можете помочь у меня такая ошибка, при нажатий на кнопку Войти происходит ошибка Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'mainBean' resolved to null
@mkrugl
@mkrugl 4 жыл бұрын
Осталось базы данных хранения Логинов и паролей добавить 😁👍.
@holllor
@holllor 6 жыл бұрын
Есть примеры коммерческих приложений на jsf
@myNextPrediction
@myNextPrediction 6 жыл бұрын
подскажите что делать Application Server was not connected before run configuration stop, reason: Unable to ping server at localhost:8080
@eldar_ziyatdinov
@eldar_ziyatdinov 7 жыл бұрын
Очень все круто, но почему не было сказано про jsf бины? stateles, managebean итд. Очень мало про jsf( Может хотя бы ссылки покидаете где можно почитать спецификацию) В инете нормальная спецификация только на английском(понятно что программисту без английского никуда), но со слабым английским достаточно трудоемко ее читать. И еще можно чаще делать туторчики? Реально очень круто) Так как по web разработке хороших туторчиков нет) Спасибо автору видосиков, респект)
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
По поводу jsf бинов - их можно полностью заменить CDI бинами, при этом CDI бины имеют более широкую область применения. А что касается Stateless бинов, то это уже EJB и они рассматриваются в следующем уроке.
@user-du9dk6jo5k
@user-du9dk6jo5k 7 жыл бұрын
Я использую NetBeans IDE 8.1 потому что прошли 30 дней полной Intellij IDEA IDE. Вот в чём вопрос - почему на ввод xhtml из урока IDE ругается, а по дефолту в xhtml лежат head и body, когда ввожу нормальный xhtml - при отображении в браузере Chrome ничего нет?
@dmitriymustafin977
@dmitriymustafin977 6 жыл бұрын
gist.github.com/denis111/c3e08bd7c60febc1de8219930a97c2f6 сброс триала идеи не мучайся с нетбинс
@dmitriymustafin977
@dmitriymustafin977 6 жыл бұрын
просто переустановка не
@xxDarlocxx
@xxDarlocxx 6 жыл бұрын
У меня такая же проблема была, я сначала на GlassFish 4.0 деплоил, тоже не отображались jsf страницы, потом скачал WildFly и на нём всё заработало
@lexjust
@lexjust 6 жыл бұрын
советую внимательно посмотреть подключенные библиотеки. также посмотрите что приходит на клиент через инструмент разработчика в google chome
@ivanulanov2377
@ivanulanov2377 5 жыл бұрын
Ещё можно оплатить на месяц) Стоит не дорого.
@user-ri5nf6fe8t
@user-ri5nf6fe8t 7 жыл бұрын
jsf - MVC-фреймворк и Spring MVC - MVC-фреймворк можно ли один заменить другим, использовать совместно? Если они взаимозаменяемые, в каких ситуациях какой лучше использовать?
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Оба этих фреймворка базируются на технологии сервлетов, оба построены вокруг главного сервлета-диспетчера и обладают примерно одинаковыми функциями. Соответственно использовать их совместно возможно, только придется следить, чтоб не было конфликтов при диспетчеризации запросов. Вот только зачем?) Разве что при миграции с одной технологии на другую в большом проекте) С некоторых пор Spring MVC даже догнал JSF по удобству использования, в частности перешел на использование аннотаций вместо XML-конфигураций. Область применения этих фреймворков тоже примерно одинаковая. Поэтому сказать, что лучше, что хуже, что и когда применять очень трудно и споры в интернетах не утихают. Так что выбор должен определяться сопутствующими технологиями - если EJB и CDI, то JSF, иначе Spring MVC. Но есть один показатель, по которому Spring MVC выигрывает - это популярность, у него больше сообщество. JSF(подразумеваем стек Java EE) по моему мнению выигрывает по предлагаемым зарплатам, в силу распространения в финансовом секторе.
@user-ri5nf6fe8t
@user-ri5nf6fe8t 7 жыл бұрын
спасибо за подробный и понятный ответ
@user-ri5nf6fe8t
@user-ri5nf6fe8t 7 жыл бұрын
ещё хотелось бы понять, чем request-based framework (Spring MVC) отличается от component-based (JSF).
@user-kq5qk5cr1q
@user-kq5qk5cr1q 7 жыл бұрын
Было бы хорошо, если исходный код урока выкладывали на github.
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Репозиторий есть - github.com/nkozhokar/examples Кстати в следующем уроке на него указана ссылка. Но популярностью не пользуется, что подсказывает мне мысль побыстрее сделать урок по Git и Github.
@user-kq5qk5cr1q
@user-kq5qk5cr1q 7 жыл бұрын
BoostBrain ну это только пока. Продолжайте снимать видео, и популярность не заставит ждать. Эти видео для меня эти видео вообще заходят хорошо, всё чётко доступным языком.
@denismitroshchenko6631
@denismitroshchenko6631 6 жыл бұрын
Не знаю есть ли у вас время отвечать на вопросы но я совсем застопорился с этим каталогом resources! Откуда он взялся и как его добавить?!!)))(при открытии проекта в IJ у меня такого каталога нет) Замучился совсем, а спросить не у кого((( Спасибо заранее!
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
+Denys Mitroshchenko если он не был создан автоматически, то можно создать вручную, в каталоге main.
@denismitroshchenko6631
@denismitroshchenko6631 6 жыл бұрын
Ой! Уже ответили!))) Я пытался через правую кнопку и New но не могу найти такой формат. Извиняюсь если вопрос тупой - очень хочется дальше продолжать! UPD. Все получилось! Спасибо!
@tsovak_palakian
@tsovak_palakian 3 жыл бұрын
Может кто знает, как это исправить. url запускается, а текста нет. org.jboss.logmanager.JBossLoggerFinder getLogger ERROR: The LogManager accessed before the "java.util.logging.manager" system property was set to "org.jboss.logmanager.LogManager". Results may be unexpected.
@user-rl6fl4of1k
@user-rl6fl4of1k 7 жыл бұрын
Здравствуйте! У меня проблемка, библиотеку jsf-api не находит.
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Скорее всего опечатка. Сделайте копипасту с ресурса по ссылке - mvnrepository.com/artifact/javax.faces/jsf-api/2.1
@user-rl6fl4of1k
@user-rl6fl4of1k 7 жыл бұрын
с копипастить эти строки? javax.faces jsf-api 2.1 че то не получается
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Да, строки правильные. А какой текст ошибки?
@user-rl6fl4of1k
@user-rl6fl4of1k 7 жыл бұрын
dependency "javax.faces:jsf-api:2.1" not found
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Правой кнопкой на проект, в разделе Maven выбрать Reimport.
@user-vh6mb9qg5z
@user-vh6mb9qg5z 5 жыл бұрын
application server was not connected before run configuration stop reason unable to ping server at localhost:8080
@carinechekanova
@carinechekanova Жыл бұрын
В deployments лишній SNAPSHOT.
@user-lb2ld2lq6t
@user-lb2ld2lq6t 7 жыл бұрын
Скажите пожалуйста как добавить JBoss , если его нет в списке?
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Обычно JBoss нет в списке, если Idea бесплатная, то есть Community. Надо скачать Ultimate, там JBoss должен быть.
@user-lb2ld2lq6t
@user-lb2ld2lq6t 7 жыл бұрын
Спасибо уже работаю))))
@user-lb2ld2lq6t
@user-lb2ld2lq6t 7 жыл бұрын
Выдает такую ошибку "Error running Unnamed: Address localhost:9990 is already in use".
@user-lb2ld2lq6t
@user-lb2ld2lq6t 7 жыл бұрын
Нашел в чем проблема(NVIDIA Network Service занял этот порт. pc-problems.ru/win_xp/secrets_of_work/140/
@petro30
@petro30 7 жыл бұрын
Вот у нас есть теги head, body, form - почему нужно добавлять в самом начале "h:" + тег... Почему в title не добавили? ))
@BoostBrainCourse
@BoostBrainCourse 7 жыл бұрын
Префикс h: означает, что элемент должен быть обработан механизмом JSF. Если посмотреть на код странички в браузере, то видно, что никаких h: там нет - они обработаны, вместо них появляется(или не появляется, если не надо) элементы управления HTML. А в title этот префикс не нужен был, вот и нет его)
@brazzers1905
@brazzers1905 6 жыл бұрын
Не очень понятно зачем вообще использовать SessionScoped? Вроде бы ничего хорошего, что при обновлении страницы пароль сохраняется в поле!
@db1212
@db1212 6 жыл бұрын
Почему JSP устарел? Очень нужно знать эту информацию.
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
Думаю лучшим объяснением будет то, что JSP предлагает смешивать в одном месте представление и логику, что противоречит современным парадигмам программирования, значительно затрудняет применение современных JS-фреймворков для фронтенда, затрудняет чтение и понимание программных комплексов.
@db1212
@db1212 6 жыл бұрын
Есть какие то статьи про это?
@nagsnowwhite
@nagsnowwhite 6 жыл бұрын
is english version available?
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
Sorry, Russian only(
@nataliegats8948
@nataliegats8948 6 жыл бұрын
i can translate it for you ))
@user-hq5jc7lv7z
@user-hq5jc7lv7z 6 жыл бұрын
Вот такая ошибка Context Path:/UniversityGoo-0.0.1-SNAPSHOT Servlet Path:/NewFile.xhtml Path Info:null Query String:null Stack Trace: javax.servlet.ServletException: /NewFile.xhtml @17,50 value="#{mainBean.login}": Target Unreachable, identifier 'mainBean' resolved to null
@Togruls
@Togruls 6 жыл бұрын
JBoss лучше Tomcat-а?
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
Смотря для какой задачи. Tomcat проще, а JBoss имеет больше возможностей. Если говорить о задачах, рассматриваемых в этой серии роликов, то Tomcat просто не взлетит.
@romalysenko2100
@romalysenko2100 6 жыл бұрын
Є питання а дані технології JSF, CDI - активно використовують ? На інших русурсах, часто пишуть, що ці технології застарілі. Цікаво булоб почути вашу думку. За урок велике дякую доступно і зрозуміло.
@BoostBrainCourse
@BoostBrainCourse 6 жыл бұрын
Рейтинг тут - zeroturnaround.com/webframeworksindex/
@romalysenko2100
@romalysenko2100 6 жыл бұрын
Спасибо за ответ
@rimmalen4581
@rimmalen4581 6 жыл бұрын
intellij idea жесть !! выбесила меня она все время forbidden или 404 и нету никакого туториала нормального для web, убила кучу времени , в эклипсе за 5 минут все что вы делаете свояла, ibtellij хороша если знаешь как ею пользоваться, и струтктура папок совсем вы не обьяснили ,. короче мне жаль потерянного на друную intellij для которой очень мало инфы в инете как ее для web настраивать
@EdwardNorthwind
@EdwardNorthwind 2 жыл бұрын
Мне JSF скорее переусложненным показался, чем более простым... Вместо того чтобы использовать простые html страницы, в которые мы встраиваем наш динамический код, господа снова пошли какими-то чигирями и всё переусложнили. Зачем всё так сложно? Где мощный и удобный шаблонизатор?
@GameForYouOnline
@GameForYouOnline Жыл бұрын
не хотят Thymleaf
Java Pro-двинутый #5. EJB, JPA, Hibernate, PostgreSQL.
28:57
I CAN’T BELIEVE I LOST 😱
00:46
Topper Guild
Рет қаралды 62 МЛН
Khó thế mà cũng làm được || How did the police do that? #shorts
01:00
Обзор по ВТС на 27.06.2024
7:14
FUND_STK
Рет қаралды 65