Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Посоветуйте на счет JSF, правильно ли я понимаю.


Автор: Killer_13 6.7.2011, 22:27
Вопрос не конкретный, лопатил несколько часов инет, ответа для себя не нашел.
Итак, создается приложение, Онлайн тест. Заходит юзер вводит логин, пароль, выбирает тест, потом все результаты отправляются на сервер и там например сохраняются в БД.
Слепил с помощью Tomcat, Eclipse и JSP обычную форму логина, которая отсылает запрос потом Servlet отдает обратно обработанный запрос. 
Читал, что JSF это фреймворк и что он позволяет использовать компоненты API (Если я правильно понял) для создания веб приложения.
Теперь суть вопроса.
Можно ли с помощью JSF сделать что-то наподобие applet я имею введу, чтоб использовались например swing компоненты со всеми листенерами и чтоб все через браузер так д...?  Я просто не хочу ограничиваться возможностями html и подучить чуток свойства свинга а не тэги и формы писать. Тоисть обычные формы и свойства css. В JavaScript фреймворки лезть не хочу. 
Или можно же сделать applet но для него нужна установлена JVM. 

Надеюсь аудитория поймет мой вопрос, спасибо за ответы.

Автор: Vasay 6.7.2011, 23:50
Killer_13

Цитата

Читал, что JSF это фреймворк и что он позволяет использовать компоненты API (Если я правильно понял) для создания веб приложения.


Да, с JSF можно использовать компоненты.
Существуют различные наборы компонент от разных разработчиков: PrimeFaces, MyFaces, ICEFaces, OpenFaces, RichFaces.

ИМХО - может от этого и есть толк в корпоративных приложениях ( мне не доводилось видеть вменяемые по юзабилити веб интерфейсы основанные на Faces и подобных технологиях ), но для разработки web ориентированных проектов все эти компоненты, да и сам JSF пригодны плохо.


Автор: Killer_13 6.7.2011, 23:58
Хорошо, а что предложите, какая альтернатива? 
Можете закинуть ссылку, где можно посмотреть как выглядят компоненты в веб интерфейсе?
тоисть где можно посмотреть реализацию того, что я спрашиваю.
Или тут единственное решение - делать как applet, чтоб можно было запустить в браузере?
Спасибо.

Автор: Vasay 7.7.2011, 00:55
Цитата(Killer_13 @  6.7.2011,  23:58 Найти цитируемый пост)
Хорошо, а что предложите, какая альтернатива? 


Все зависит от того, какая у Вас задача.




Цитата(Killer_13 @  6.7.2011,  23:58 Найти цитируемый пост)
Можете закинуть ссылку, где можно посмотреть как выглядят компоненты в веб интерфейсе?


http://www.icefaces.org/main/demos/

Автор: Killer_13 7.7.2011, 01:24
Вах, окунулся в мир фреймворков, глаза разбегаются. smilesmile

Пока что понравились http://demo.vaadin.com/ http://www.icefaces.org/main/demos/ http://www.openfaces.org/demo/ и много читаю о Spring но демо где можно посмотреть компоненты не могу найти. Также видел книги по Spring. Или это рано еще трогать? smile

Кстати, а как выглядят компоненты JSF? Не могу найти чтоб посмотреть. Это будут обычные Swing компоненты?

Приложение самое обычное, нужно за месяц склепать. Онлайн опросник.
Какой из них посоветуете?

Насколько я понимаю, это реализуется достаточно просто в проекте. Закачиваю библиотеку(фреймворк), потом где мне нужно в классе создаю объект типа ICEFacessButton и у меня будет такая же кнопка как я видел в демо.

Спасибо за ответы на такие может и глупые, но для меня сейчас очень полезные вопросы. smile

Автор: Farmazon 7.7.2011, 04:17
это всё от лукавого... Vaadin, GWT, jsf... Всё костыли разной степени сложности для разработчиков, что не хотят javascript учить.

Взгляни ещё в сторону JavaScript+JQuery и разработки REST API.

Автор: Killer_13 7.7.2011, 10:24
Неее, JavaScript не хочу, с JQuery чуток работал, хорошая штука. smile
Значит как вариант делать свое приложение как отдельную программку, которая коннектится с серваком и так д. В браузере не получится так как я хочу.

Автор: Vasay 7.7.2011, 10:31
Цитата(Killer_13 @  7.7.2011,  01:24 Найти цитируемый пост)
Кстати, а как выглядят компоненты JSF? Не могу найти чтоб посмотреть.


Все эти *Faces - это и есть компоненты JSF.



Цитата(Killer_13 @  7.7.2011,  01:24 Найти цитируемый пост)
Приложение самое обычное, нужно за месяц склепать. Онлайн опросник.



Приходя в WEB, забудьте все чему Вы научились программируя под десктоп.  Все это компонентное программирование - зло.  Эти фреймворки  Vaadin ICEFaces Openfaces - совершенно не годятся для разработки web приложений. 

Начните с понимания HTTP. Что такое GET, POST, cookie... Потом ознакомьтесь с идеологией MVC.  И начинайте "курить" MVC фреймворки ( Spring MVC, например ) . Для интерактивности можно использовать, например, JQuery.

Автор: Killer_13 7.7.2011, 12:05
Понятно, Еще один вопросик, а у Spring есть свои компоненты или как он работает?
За месяц я наверное не разгребусь со Spring наверное нужно будет все таки делать десктопное приложение. Суть данного проекта подучить Swing я как планировал что я хочу написать, не знал как строятся веб приложения, вот снчало и подумал, что через браузер было бы лучше. smile Но как начал копать вчера, то уже сегодня наверное передумаю. smile
Цитата

Все это компонентное программирование - зло.

Вы имеете введу Компонентное программирование под веб. Правильно? smile

Автор: Vasay 7.7.2011, 12:52
Killer_13

Цитата

Суть данного проекта подучить Swing я как планировал что я хочу написать, не знал как строятся веб приложения, вот снчало и подумал, что через браузер было бы лучше.


Ну, если Вы хотите учить Swing, то писать надо десктопные программы. Но не рассчитывайте на аплеты - их применение оправдано только в корпоративных проектах, где есть гарантия наличия JVM на пользовательских машинах.

Цитата

 Вы имеете введу Компонентное программирование под веб. Правильно?


Под WWW. Т.е. создание сайтов.  Когда речь идет о создании web интерфейса корпоративного приложения - эти фреймворки вполне могут быть оправданы. Но нужно быть очень аккуратным, что бы пользователи не захотели Вас казнить страшной казнью из-за невменяемого юзабилити. 

Цитата

Еще один вопросик, а у Spring есть свои компоненты или как он работает?


Сразу, чтоб не было дальнейшей путаницы - Spring - это огромный фреймворк, который может применяться и в десктоп приложениях. Он состоит из нескольких отдельных проектов, которые могут использоваться как вместе так и каждый сам по себе.  Spring MVC - это один из подпроектов, который используется при построении web приложений для разделения  web приложения на слои: доступа к данным, бизнес логики и представления. 

Наверно, чтоб лучше понять, как это работает, стоит пройти небольшой туториал "Developing a Spring Framework MVC application step-by-step"  http://static.springsource.org/docs/Spring-MVC-step-by-step/

Правда, это по версии 2.5 что-то не нашел - есть ли у них подобный по версии 3 - не видел. 

Автор: Farmazon 7.7.2011, 16:02
в reference по спрингу всё есть... MVC ихний меньше 50 стр

про яваскрипт я ни разу не шутил. У него другая парадигма. Я и сам довольно скептично к нему относился пока нужда не заставила разобраться... И фиг ты чего лучше найдёшь для работы в контексте страницы и организации интерактивного взаимодействия. Другое дело, что оно тебе не надо может быть... может тебе действительно сервлетов и JSP хватит (+ Spring MVC в довесок)

Автор: Killer_13 7.7.2011, 16:14
В принципе, все стало менее более понятно, помогли мне чуток по полочкам разложить. Ну раз уж такой общий замес здесь пошел, подскажите своими словами с чем и к чему курят "JBoss"?

Автор: Farmazon 7.7.2011, 16:20
JBoss - это подготовленная инфраструктура для корпоративных приложений.
Тут тебе и контейнер бинов(эти ваши EJB), и пулы потоков исполнения, и JMS, и JPA-Hibernate(ORM) и прочее...

К слову сказать, эту инфраструктуру вполне себе можно и самому на Spring собирать, и работать она будет так, как ты её соберёшь, и всякого мусора меньше(а значит jar-hell). Но кому-то удобнее чтобы оно заработало всё сразу из коробки(правда не всё всегда понятно как).

Автор: Killer_13 7.7.2011, 16:34
Спасибо за ответ, это мне еще рано. smile Просто хочется чуток разобраться как говорят многие люди в "Зоопарке Java-технологий, Java-названий".

Автор: Vasay 7.7.2011, 16:52
Цитата(Killer_13 @  7.7.2011,  16:14 Найти цитируемый пост)
 Ну раз уж такой общий замес здесь пошел, подскажите своими словами с чем и к чему курят "JBoss"?



Вообще-то JBoss это компания , которая, при поддержке комьюнити, выпускает целый ряд продуктов.

Таких как:
JBoss Application Server - это сервер приложений с открытым исходным кодом.
Hibernate - один из наиболее популярных Java ORM фреймворков
Seam — основанный на JSF web фреймворк ( ИМХО корявый ). 
RichFaces -  библиотека компонентов для JSF
JBoss Portal - Java Potal. 

и тд...

Добавлено @ 16:54
Цитата(Killer_13 @  7.7.2011,  16:34 Найти цитируемый пост)
Просто хочется чуток разобраться как говорят многие люди в "Зоопарке Java-технологий, Java-названий".


Зоопарк, действительно щикарный - зверей много, и жизни не хватит со всеми познакомится  smile 
 

Автор: Embedded 7.7.2011, 20:28
Killer_13
Вот наверное меня уже принимают тут за фаната Стампеде... но блин интересный сериал, о том как сделать руками веб сайт, в принципе у меня получилось интересно и сделать в т.ч. к нему простую систему управления контентом. Главное я понял как все работает на низком уровне, тот самый HTTP, cookie, сессии и т.д. Но там в сериале нужно думать своим мозгом, а то подопытный там наворотил с ORM (JPA) косяков. 

Сам сериал: http://forum.vingrad.ru/forum/topic-124877.html

Автор: Killer_13 8.7.2011, 01:39
Спасибо, почитаю тему. smile

Автор: Temdegon 8.7.2011, 18:17
Не знаю, че так все хают компонентные фреймворки. Мне вполне нравится как сама идея, так и некоторые реализации. Как-то ковырялся с PrimeFaces, вполне был доволен результатом. Сейчас вот с ZK потихоньку разбираюсь, очень все клево и красиво.

Автор: Vasay 8.7.2011, 18:41
Цитата(Temdegon @ 8.7.2011,  18:17)
Не знаю, че так все хают компонентные фреймворки. Мне вполне нравится как сама идея, так и некоторые реализации. Как-то ковырялся с PrimeFaces, вполне был доволен результатом. Сейчас вот с ZK потихоньку разбираюсь, очень все клево и красиво.

Все зависит - для чего и где применять. 

Для web-а большинство таких фреймворков не пригодны:

- не совместимы с SEO
- нет соответствия контента URL
- неправильно обрабатываются кнопки "вперед/назад", "обновить"
- Неправильно обрабатывается "открыть в новой вкладке/окне".


Кроме того часто лезут глюки с поддержкой разных браузеров. 

Автор: Temdegon 8.7.2011, 19:21
Цитата

Кроме того часто лезут глюки с поддержкой разных браузеров.  

Глюки с поддержкой разных браузеров лезут еще чаще, когда человек без опыта начинает писать свою вебморду на html+javascript.
Цитата

Все зависит - для чего и где применять. 

Это бесспорно. Компонентные фреймворки применяются для веб-приложений. Вроде как они для этого и придуманы. По этому в них не нужны все перечисленные пункты. Писать форум, блог, сайт фирмы или хомпагу на них нельзя. А вот админку к ним - в самый раз.
ТС хочет аналог Swing, и не хочет возиться с HTML. Его задача вроде как раз хорошо подходит для использования таких фреймворков. Так зачем его отговаривать, и заставлять учить javascript и html? Пусть лучше это время потратит на изучение java и того же Spring.

Автор: Vasay 8.7.2011, 20:03
Цитата(Temdegon @  8.7.2011,  19:21 Найти цитируемый пост)
А вот админку к ним - в самый раз.



К сожалению, для создания вменяемого юзабилити потребуется очень много затрат.  На практике я не видел еще ни одного удобной админки созданной с помощью подобных фреймворков.

Добавлено через 14 минут и 24 секунды
Temdegon
Цитата

Глюки с поддержкой разных браузеров лезут еще чаще, когда человек без опыта начинает писать свою вебморду на html+javascript.


Я не призываю писать руками JS. Для таких целей есть, например, jQuery, YUI. Их можно интегрировать там, где нужна интерактивность.

К тому же, использовать два идеологически разных фреймворка для написания фронт и бек энда по любому приведет к росту количества кода.

Автор: Forsaken 8.7.2011, 22:08
Я тоже думаю, что всякие JSF для веба как средство создания сайта полная муть. Лучше делать html + js это гибко, легковесно, аккуратно и по стандартам. В принципе можно понять Гослинга когда он материт эту хреновину (JSF).
Точно еще не читал, о чем там вещает нам мс, но походу они хотят взять на вооружение интерфейсы десктопынх приложений написанных на html + css + js. Вообще наверное быстрее и не сделаешь гибкого качественного, юзабильного интерфейса, но уж не знаю что они там замутят, надо почитать, а то я несколько голословен сейчас.

http://www.microsoft.com/rus/newscenter/news/read/?id=post/2011/06/02/win8.aspx

Vasay
Цитата

тому же, использовать два идеологически разных фреймворка для написания фронт и бек энда по любому приведет к росту количества кода.

Тоже большая задница. 
Это вообще антипрогресс и удобство высосанное из пальца.
 

Автор: Temdegon 9.7.2011, 00:20
Цитата

К сожалению, для создания вменяемого юзабилити потребуется очень много затрат.  На практике я не видел еще ни одного удобной админки созданной с помощью подобных фреймворков.

Не совсем понимаю, что подразумевается под вменяемым юзабилити, и почему его легко достичь используюя html+jQuery и так сложно испльзуя какой-то компонентный фреймворк. Но контраргументов у меня сейчас нет, по этому не буду спорить. 
Цитата

К тому же, использовать два идеологически разных фреймворка для написания фронт и бек энда по любому приведет к росту количества кода. 

Тут http://forum.vingrad.ru/forum/topic-325815.html на данный момент планируется Spring MVC для всего, кроме админки. Ее мы будем делать (точнее сегодня начали) на ZK. Что из этого выйдет, как это повлияет на кол-во кода - будет видно. Пока не вижу каких-то предпосылок для этого. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)