Меньше кода, больше дохода. Часть 3. Tapestry для создания Java EE-приложений::Журнал СА 5.2014
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9943
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8156
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8259
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5226
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5913
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Меньше кода, больше дохода. Часть 3. Tapestry для создания Java EE-приложений

Архив номеров / 2014 / Выпуск №5 (138) / Меньше кода, больше дохода. Часть 3. Tapestry для создания Java EE-приложений

Рубрика: Разработка /  Веб-технологии

Михаил Ушаков МИХАИЛ УШАКОВ, разработчик электронной аппаратуры и программного обеспечения для ядерной гаммарезонансной спектроскопии, Уральский федеральный университет, um.nix.user@gmail.com

Меньше кода, больше дохода
Часть 3. Tapestry для создания Java EE-приложений

В прошлой части статьи [1] мы рассмотрели, как настроить Back-end слой, получить данные через менеджера данных и отображать их в простой CRUD-компонент в виде HTML-таблицы со ссылками для удаления, редактирования и добавления записей в базу данных. Как использовать базовые возможности Tapestry?

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

Понятие состояния и сохранение состояний

При каждой перезагрузке веб-страниц, созданных с использованием Apache Tapestry, происходит полная очистка полей классов, восстанавливаются значения по умолчанию (даже статические), если поля помечены аннотациями для IoC (@Inject, @InjectComponent, @InjectPage), например, в предыдущей статье мы инициализировали менеджер данных:

@Inject

private IDatabaseManager databaseManager;

Рассмотрим ситуацию, когда мы редактируем информацию о пользователе (профиль пользователя) и нажимаем клавишу <F5> или перезагрузку страницы в браузере, все поля ввода, как отредактированные, так и инициализированные строкой, заменяются из таблицы базы данных. Подобное поведение не будет дружелюбным по отношению к конечному пользователю. Одним из вариантов является использование Persist-полей. Persist-поле будет сохранять свое значение до тех пор, пока не будут закрыты все соединения с сервером. Чтобы использовать Persist-поля, необходимо взять аннотацию @Persist (никто и не думал, что аннотация будет носить другое имя):

@Persist

private User currentUser;

На первый взгляд все хорошо, у нас происходит сохранение состояния, и при обновлении страницы значения в полях ввода не сбрасываются. Однако у данного подхода есть серьезные недостатки: при открытии в браузере двух и более страниц, в которых происходит инициализация одного и того же Persist-поля, соответствующего элементу ввода (страница редактирования профиля пользователя), каждый раз происходит перезапись Persist-поля. Оно является аналогом статических полей в классах.

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

Статью целиком читайте в журнале «Системный администратор», №5 за 2014 г. на страницах 56-60.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru