![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
Привет всем!
Сразу извиняюсь за душуизлияние но... История моего знакомства с языком java началась так: В один прекрасный день нам сказали что наша контора покупает web проект, который написан на java + jsp + struts индускими девелоперами. И нам в кратчайшие сроки необходимо освоить присутствующии технологии. Тут все и началось, начали с малого - с языка java ![]() Дальше начал юзать jsp. Первые впечатления и имоции давольно положительные - "вау! я могу динамически генерить хтмл." Эти положительные имоции продолжились не долго... Вот вроди когда сам пишешь подобную страницу все понятно все зашибись, но когда дело дошло до разбора индийского творения, то наступил "пипец". Это реальная каша (struts и jsp), но только не из одной крупы, а такое ощущение что все возможные крупы высыпали в одну кастрюлю. Я не мог поверить, неужели действительно это и есть разработка web приложения, в том виде в каком ее представили индуские девелоперы! ![]() После увиденного я решил ознакомится с самой технологией j2ee, набрал книг, начинаю читать и вижу все тот же самый jsp, ejb и остальное... Да думаю, действительно судя по книге все верно организовано. И начал постепенно смиряться с этой мыслью. Ну так вот писали мы писали, плевались, матерились, легче от этого не становилось. И как то мне довелось прочитать топ: http://forum.vingrad.ru/forum/topic-44988/...ry346919/0.html. в котором знающие люди утверждают, что то что написано в книгах это ни что иное, как наглое навязывание технологий. Ура подумал я! velocity! Несколько раз перечитал топик и решил попробывать. Но есть несколько вещей которые я не могу понять: 1) struts, jsf, velocity - это взаимо заминяемые средства? т.е. все ли они отделяют бизнес логику от создания пользовательского интерфейса? На сколько я понял velocity однозначно, а остальные? 2) по прежнему не понятно как использовать velocity при создании пользовательского интерфейса. Я выполнил примет из вышеуказанного топа, автором которого является Domestic Cat. Все заработало, но что дальше как его применить в хтмл? Буду очень признателен если вы наведете порядок в моей бошке и направите на путь истинный! ![]() |
|||
|
||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
Присоединяюсь к вопросам
![]() -------------------- ![]() |
|||
|
||||
stup |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: 1 Всего: 1 |
В большинстве случаев для обычного веб проекта velocity заменяет jsp. Просто вместо скриплетов
(в лучшем случае собственных тегов) пишешь маленькие и изящные конструкции VTL. В принципе и JSP позволяет качественно разделить работу веб дизайнера и программиста (если следовать рекомендациям по использованию ![]() P.S. Все вышесказанное - исключительно мое мнение начинающего ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
stup, что вы имеете ввиду, что для серьезных проектов velocity не пригоден или что для написания серьезных проектов jsp дает какую либо гибкость? Из личного опыта знаю что любой простенький проек часто перерастает в более серьезный и если технология была выбрана "не верно", то более серьезный проек зачастую не дописывается, а переписывается с нуля. Давайте в этой теме не будем разделять "простой" проек от "сложного", будем считать что выбор технологии осущетвляется для написания проекта, который в последствии будет расширяться и расширяться. stup, спасибо за мнение ![]() Это сообщение отредактировал(а) DimW - 7.6.2007, 15:57 |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Нет. Struts и JSF - это веб-фреймворки, упрощающие разработку веб-приложений, Velocity - это язык разметки текста, с помощью которого можно вообще любой текст генерировать, не только HTML. По назначению они никак не пересекаются. Struts и Velocity можно использовать совместно. JSF и Velocity - не знаю, скорее всего нет. В дистрибутиве Velocity есть примеры веб-приложений, показывающие как его использовать. Однако, лучше взять какой-то фреймворк (Struts, Spring, Turbine), который работает с Velocity. Последние два поддерживают Velocity, как говорится, из коробки.
Velocity для любых проектов подходит - и больших и маленьких. |
|||
|
||||
stup |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: 1 Всего: 1 |
Конечно же я совсем не это имел ввиду ![]() |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
то есть в место привычного мне xxx.jsp файла, я получаю xxx.vm? правельно ли я понимаю что вся хтмл разметка теперь делается в xxx.vm + в нужные места вставляются вызов методов java средствами velocity? tux, спасибо! теперь в голове вабще все перемешалось :( посмотрю пока примеры... |
|||
|
||||
stup |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: 1 Всего: 1 |
Как видим, да |
||||
|
|||||
DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
вобщем я еще в большем тупике. Раз velocity язык разметки, а его специфические термины позволяют использовать условия, циклы, вызов методов, то чем он отличается от того же html + jsp. вот кусок кода на jsp:
вот на velocity:
Единственное приемущество которое я заметил это читабельность кода. Так в чем же прелесть velocity только лишь в читабельности кода, на сколько я понял это лишь одно из преемуществ. Пожалуйста "ткните пальцем" на что я должен обратить внимание! З.Ы. stup, спасибо за ответ! |
||||
|
|||||
stup |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 17.4.2007 Репутация: 1 Всего: 1 |
Количество такого кода должно быть сведено к минимуму, иначе проект неизбежно завалится. В случае с jsp логику лучше спрятать в свой тэг, в случае velocity ее лучше спрятать в метод java. По моему скромному мнению, в этой ситуации velocity несколько удобней (написать метод джава легче, чем свой тег).
http://www.javenue.info/post/25 Как видим, очень удобно применять велосити для создания jsp custom tags. Мы имеем возможность очень здорово разделить тег и его реализацию (избавляемся от кучи append'ов строк html и javascript, которые так раздражают всех программистов библиотек тегов). Velocity несколько напоминает xsl, только он шире, т.к. не привязан к формату данных. Если в двух словах: Синтаксис удобней, код лаконичней. Но это применение велосити только к джсп. Не забывайте, что это просто шаблонный движок и применять его можно к чему угодно. Хотя лично я, кроме как к джсп, не применял ![]() |
|||
|
||||
serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Как я понимаю, при использовании Velocity дизайнер должен быть осведомлен о вызове различных методов, равно как и об их параметрах. Зачем это нужно знать дизайнеру?
-------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 2 Всего: 20 |
а где то это нет так ? ![]() тем более практическе всегда (в большистве случаем) шаблоны пишет программист поправте меня если я не прав -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
Maksym |
|
|||
![]() . ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1456 Регистрация: 19.8.2005 Где: Odessa, Black Sea Репутация: 24 Всего: 62 |
Думаю, прав. Обычно дизайнер верстает макеты и следит за тем чтобы результирующие динамически сформированные страницы соответствовали этим макетам. И все. А шабоны делает программист. Хотя очень хотелось бы взвалить и это на дизайнера, но на моем опыте ни к чему хорошему такие попытки еще не приводили -- слишком много дополнительной документации нужно подготовить для дизайнера, чтобы ему было на что опираться при разработки шаблонов + слишком высокие требования к квалификации этого дизайнера. |
|||
|
||||
DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 3 Всего: 44 |
я не могу согласиться с этим утвеждением. немного расскажу как мы упростили себе жизнь: после токо как нам пришлось руками нацарапать по несколько страниц, нам стало плохо, и мы решили сделать следующее. 1) мы определили ряд компонентов которые нам потребуются для работы с БД. 2) определили уникальные типы для каждого. 3) определили как каждый компонент должен себя вести. 4) нарисовали css для каждого. И каждый компонент запихнули в метод java, на выходе метод возвращает хтмл + java script для компонента. т.е. хтмл показывает компонент в браузере, а жава скрипт диктует его поведение. К примеру компонент типа TDateTimePicker: Этот компонент предназначен для выбора даты из календаря. в хтмл это выглядит так: <input type="text"> (дата попадает сюда после выбора из календаря) <button>...</button> (по нажатию кнопки вызывается календарь) вызов компонента осуществляется так: <%=компонент(параметры компонента)%> Теперь нам не надо парится каждый раз когда нам требуется такой компонент, мы просто вызывает нужный метод! Мы облегчели себе жизнь только тем, что нам не приходится тратить время на формирование пользовательского интерфейса, а все остальное попрежнему приходится делать руками на jsp: а) заполнение компонентов данными из базы для редактирования; б) вызов методов java для добавления, редактирования, удаления данных; и т.д. Вобщем то какой то чистоты кода мы добились, но не настолько насколько хотелось бы! По прежнему нет четкой грани между бизнес логикой и интерфейсом системы. По этому я и открыл эту тему для того что бы выяснить чем можно воспользоваться. На сколько я понял velocity это решает, но пока я этого не увидел, и что более выроятно просто не могу понять! Это сообщение отредактировал(а) DimW - 8.6.2007, 13:45 |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Velocity - это генератор текста. И все. А отнюдь не чудодейственное средство. Velocity удобно использовать если знать что он умеет. А умеет он в общем-то немного. Боюсь, что если думать, что Velocity спасет проект, тебя постигнет жестокое разочарование. Зато он может заставить писать работу с базой данных в Java-коде поскольку в шаблоне Velocity это сделать нереально. Это несомненно положительно скажется на качестве кода. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |