Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JSP — с чего начать? 
V
    Опции темы
diablero
Дата 23.9.2007, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Сделаю небольшой рефакторинг и выложу результат.
Позволю быть себе "......." (почти бип), Stampede, это конец или как появиться у тебя время продолжим?


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
diablero
Дата 24.9.2007, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Неоднократные попытки пока не привели меня к 100% рабочему решению постраничного просмотра для моего случая. Когда у любого раздела может быть любое количество подразделов. Поэтому подразделы выводятся все, а статьи постранично.
В качестве редактора используется FCKeditor. Качайте его и jar для явы, с ним идет редми файл, в нем фсе подробно описанно. 


Присоединённый файл ( Кол-во скачиваний: 94 )
Присоединённый файл  Infinite1.1.4.7.zip 45,49 Kb


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Kizja
Дата 6.10.2007, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



Скажите, а можно ли в Velocity использовать константные статические переменные из ява классов? - т.е. вот скажем в confirmation.vm используется такое условие: 

Код

#if( $confirmData.getActionType() == "LOGIN_ACTION" )


Допустим условие, в котором используется стринг "LOGIN_ACTION" так же используется ещё где-то в другом месте - в ява классах или в других файлах велосити - так вот можно ли его вынести в класс:

Код

public static final String LOGIN_ACTION = "LOGIN_ACTION";


чтобы получилось что-то типа такого:
Код

#if( $confirmData.getActionType() == MyClass.LOGIN_ACTION)

и использовать уже дальше так?

Или например линки: 
Код

Перейти на <a href="/home.shtml">главную страницу</a>


Тоже можно ли сделать как переменную:
Перейти на <a href=MyClass.HOME_PAGE>главную страницу</a>

Потому что если допустим изменить чуть ссылку, то придётся рыть все файлы и заменять, что думаю "не есть хорошо".
PM MAIL   Вверх
Stampede
Дата 6.10.2007, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(Kizja @  6.10.2007,  04:15 Найти цитируемый пост)
Скажите, а можно ли в Velocity использовать константные статические переменные из ява классов?


Ну что, diablero, сможешь ответить товарищу? Считай, что это вопрос на закрепление материала.

Ну и вообще, как у тебя с сайтом? Почему решение с пейджером не выложил? Статистику будем делать?

Короче, пиши.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
diablero
Дата 6.10.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Цитата(Kizja @  6.10.2007,  13:15 Найти цитируемый пост)
Скажите, а можно ли в Velocity использовать константные статические переменные из ява классов?

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


Цитата(Stampede @  6.10.2007,  19:52 Найти цитируемый пост)
Ну и вообще, как у тебя с сайтом? Почему решение с пейджером не выложил? Статистику будем делать?

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

Добавлено @ 20:37
Цитата(Stampede @  6.10.2007,  19:52 Найти цитируемый пост)
Почему решение с пейджером не выложил?

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


Это сообщение отредактировал(а) diablero - 7.10.2007, 01:35


--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Kizja
Дата 6.10.2007, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 15.7.2007

Репутация: нет
Всего: нет



diablero, да но ведь речь идёт не об объекте какого-либо класса, а о статических переменных, для которых объект не требуется и, на сколько я знаю, обычно переменные static final не делаются через геттеры, а получаются напрямую. Или что получается я должен обязательно создавать объект, чтобы получить статическое значение в велосити?
И ещё - в данном проекте есть ли намерение заменить в велосити файлах на такой вариант, о котором я говорю или же удобнее при вдруг возможном изменении линка ковырять весь код, чтобы найти все места, где этот линк использовался?

Добавлено через 2 минуты и 27 секунд
Тогда получается нельзя что ли в велосити через имя класса, как это обычно в яве делается, получить значение статической переменной?
PM MAIL   Вверх
Vasay
Дата 6.10.2007, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



to diablero 

Похоже у меня глюканул пм, написал сообщение по поводу твоего  поста:

Цитата

Неоднократные попытки пока не привели меня к 100% рабочему решению постраничного просмотра для моего случая. Когда у любого раздела может быть любое количество подразделов. Поэтому подразделы выводятся все, а статьи постранично.


Но не в отправленных, не в слежении нет :( Похоже (если я правильно понял) у меня такая же проблема, хотел обсудить может спишемся по icq?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
diablero
Дата 6.10.2007, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Цитата(Vasay @  6.10.2007,  21:41 Найти цитируемый пост)
может спишемся по icq?

Давай, пиши свою аську, или мне на почту, или в личный ящик.

to Kizja
Цитата(Kizja @  6.10.2007,  21:31 Найти цитируемый пост)
Или что получается я должен обязательно создавать объект, чтобы получить статическое значение в велосити?

Я тебя маленько не понимаю.
Если ты передаешь в контекст объект класса, то в шаблоне ты имеешь доступ ко всем полям и методам этого объекта, но для полей должны быть геттеры.
Код

public class ConfirmData {
    public static final String LOGIN_ACTION = "login.action";
    public static final String LOGOUT_ACTION = "logout.action";
    public static final String REGISTRATION_ACTION = "registration.action";
    public static final String POST_ADDED = "post.added.action";

    private String actionType;
    private Object bean;
    private String refererUrl = "/home.shtml";
    
    public String getActionType() {
        return actionType;
    }
    public String getRefererUrl() {
        return refererUrl;
    }
    public Object getBean() {
        return bean;
    }
}

Код

page.put("confirmData", confirmData);

То в шаблоне:
Код

...
#set ($action = $confirmData.actionType)
#if( $action == "login.action" )
...

Т.е. для того чтобы получить значение actionType, тебе не обязательно писать в шаблоне  $confirmData.getActionType(), ты можешь сразу обратиться к полю этого объекта $confirmData.actionType. Но ты не можешь обратиться к полям у которых нет геттеров.
Тут есть два выхода, либо писать для них геттер, что аморально, либо передавать в контекст именно это поле.
Код

page.put("actionType", ConfirmData.LOGIN_ACTION);
 


Цитата(Kizja @  6.10.2007,  21:31 Найти цитируемый пост)
И ещё - в данном проекте есть ли намерение заменить в велосити файлах на такой вариант, о котором я говорю или же удобнее при вдруг возможном изменении линка ковырять весь код, чтобы найти все места, где этот линк использовался?


Во всем должна быть мера и рациональный подход. Тут смотри сам. Это учебный проет, в котором Stampede, учить основам. Как я уже написал выше:
Цитата(diablero @  6.10.2007,  20:31 Найти цитируемый пост)
Вообще у меня как бы паралельно живут два проекта, тот что я делаю под твоим руководством и то,т что я делаю, переделываю, т.е. первый, для своих нужд. Под занавес обучения, подчищеный код я запостю, для всеобщего блага.

Поэтому что то вынесенно в ява код, что то оставленно в шаблонах.



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Shaggie
Дата 30.10.2007, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 2
Всего: 72



Цитата(Stampede @  20.7.2007,  20:32 Найти цитируемый пост)
На первых порах логику разрешения УРЛов в воркеры можно засунуть просто в отдельный метод в нашем сервлете-контроллере
<...>
Понятно, что со временем все это оформится в отдельный конфигурируемый компонент, ну а пока нам нужно просто проверить идею.

А можно пример, как это реализовывается в виде отдельного компонента?


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
Stampede
Дата 30.10.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(Shaggie @  30.10.2007,  05:36 Найти цитируемый пост)
А можно пример, как это реализовывается в виде отдельного компонента? 


Да в общем элементарно. Представим себе интерфейс:

Код

public interface Dispatcher {
    public void init(Properties props);
    public Worker resolve(String url);
    public void shutdown();
}


Допустим, мы решили написать диспетчер, который для разрешения УРЛов в воркеры использует регулярные выражения. Для простоты примем такой формат пропертей:

паттерн=имя-класса-воркера

Ну и все. При инициализации диспетчера заносим инфу о маппингах в какую-нибудь структуру. А потом при обработке запросов на разрешение УРЛов resolve(url) перебираем маппинги по очереди и смотрим, какой первым подойдет.

Код

public class RegexDispatcher implements Dispatcher {
    Properties mappings;
    public void init(Properties props) {
        mappings = props;
    }

    public Worker resolve(String url) {
        for (String regex : mappings.keySet()) {
            if (url.matches(regex)) {
                String className = mapping.get(regex);
                try {
                    Worker worker = (Worker) Class.forName(className).newInstance();
                    return worker;
                }
                catch (Exception e) {
                    throw new RuntimeException("Could not instantiate worker: " + className, e);
                }
            }
        }

        throw new RuntimeException("No workers defined for URL: " + url);
    }

    public void shutdown() {
        mappings = null;
    }
}


Всех делов. Как составить файл пропертей, думаю, догадаешься.

Ну и понятно, что тут возможен миллион вариантов в отношении формата маппингов (например, на основе wildcards), формата конфигурации (CSV, XML), логики разрешения имен и прочих деталей. Я просто привел пример простого и ненапряжного диспетчера.



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
Shaggie
Дата 31.10.2007, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 2
Всего: 72



Stampede, вроде разобрался, бью земные поклоны. 


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
diablero
Дата 2.11.2007, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Не прошло и года, я дорвался до компа, на три дня. Потом опять уеду. 
Stampede на проект я не забил, просто физически пока нет возможности.
Есть два глобальных вопроса, в которых мне нужен совет. Поиск и рассылка.

1.Как организовать расширенный поиск? Как лучше хранить промежуточный результат, т.е. только id статей и новостей в сессии или его делают как то по-другому.
2.Как организовать рассылку. Контекст рассылки пока можно не рассматривать. Есть вариант использовать схему Observer – Observer. Какие есть еще варианты?



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
SuperFly
Дата 30.11.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 19.11.2007

Репутация: нет
Всего: нет



*Хнык*2-ю неделю мне не дает покоя эта Java for Web...  Не могу состряпать даже маломальского приложения. Видимо мне сюда. Еще принимаете? Или учителя уже замучались?
PM   Вверх
Stampede
Дата 30.11.2007, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 66
Всего: 144



Цитата(SuperFly @  30.11.2007,  10:38 Найти цитируемый пост)
Не могу состряпать даже маломальского приложения. Видимо мне сюда.


Да я давно уже смотрю и думаю: чего человек мучается? Нешто тему не видит? smile

Цитата(SuperFly @  30.11.2007,  10:38 Найти цитируемый пост)
Еще принимаете? Или учителя уже замучались?


Дак а тут не надо учителей. Вся тема уже разжевана. Надо просто пройти шаг за шагом путем diablero, сверяясь по ходу с очередной "жЫрной чертой". И будет тебе щастье smile

Разумеется, в процессе могут возникнуть вопросы. Вот тогда и обращайся, постараемся помочь.

Успехов!



--------------------
"If you want something done right, do it yourself"
По секрету: выучить английский - реально!
PM WWW   Вверх
diablero
Дата 30.11.2007, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 337
Регистрация: 3.12.2006
Где: Аркхэм

Репутация: 2
Всего: 5



Цитата(SuperFly @  30.11.2007,  20:38 Найти цитируемый пост)
Видимо мне сюда. Еще принимаете? Или учителя уже замучались?

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



--------------------
Есть два варианта решения проблемы - реальный и фантастический. Реальный - это когда прилетят инопланетяне и все за нас сделают ...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.1093 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.