Spring Web Flow. Hello World! Часть 1. ВведениеВ этой небольшой статье мы попытаемся объяснить принцип создания приложений с использованием Spring Web Flow версии 2.x. Spring Web Flow (SWF) - это суб-проект Spring Framework, целью которого является предоставление инфраструктуры для разработки веб-приложений со сложной структурой. http://www.seostella.com/ru/article/2012/01/05/spring-web-flow-hello-world-chast-1-vvedenie.html |
Spring Web Flow. Hello World! Часть 2. Настройка проектаВ этой части займемся созданием и настройкой проекта в среде разработки NetBeans. В проекте будем использовать Maven и Spring Web Flow версии 2.3.0. Также будут представлены библиотеки, необходимые для работы приложения "Hello World!". http://www.seostella.com/ru/article/2012/01/05/spring-web-flow-hello-world-chast-2-nastroyka-proekta.html |
Spring Web Flow. Hello World! Часть 3. Настройка SWFПроект создан. Настраиваем его для работы со Spring Web Flow. Настройка затронет три файла: дескриптор развертывания web.xml, файл настроек applicationContext.xml и файл контекста по умолчанию context.xml. http://www.seostella.com/ru/article/2012/01/05/spring-web-flow-hello-world-chast-3-nastroyka-swf.html |
Spring Web Flow. Hello World! Часть 4. Настройка приложенияНастраиваем файл сервлета SWFHelloWorld-servlet.xml, стартовую страницу index.jsp, в которой будет находится ссылка на приложение, написанное с использованием Spring Web Flow. В этой статье также объясняются некоторые аспекты конфигурирования файла SWFHelloWorld-servlet.xml. http://www.seostella.com/ru/article/2012/01/05/spring-web-flow-hello-world-chast-4-nastroyka-prilozheniya.html |
Spring Web Flow. Hello World! Часть 5В статье описан процесс создания приложения Hello World с использованием Spring Web Flow, описывается базовые состояния SWF. Также приводится исходники приложения и принцип url-адресации во flow. http://www.seostella.com/ru/article/2012/01/05/spring-web-flow-hello-world-chast-5.html |
Spring Web Flow. Hi John! Часть 1. Настройка приложенияРазвиваем тему Spring Web Flow, которую мы начали обговаривать в предыдущей статье. Начнем с настройки приложения. В этой части мы настроим веб-приложения, которое будет подробно описано в следующей части. http://www.seostella.com/ru/article/2012/01/11/spring-web-flow-hi-john-chast-1-nastroyka-prilozheniya.html |
Spring Web Flow. Hi John! Часть 2. Создание приложенияВ этой части мы усовершенствуем веб-приложение из предыдущей статьи. Пользователь сможет ввести свое имя и увидеть приветствие в виде "Hello John!". Всё это будет сделано с использованием Spring Web Flow. http://www.seostella.com/ru/article/2012/01/12/spring-web-flow-hi-john-chast-2-sozdanie-prilozheniya.html |
Spring Web Flow. Hi John! Часть 3. МодификацияВ этой части мы модифицируем веб-приложение из предыдущей части статьи. Пользователю необходимо будет ввести имя, содержащее не менее 3-х символов, для того, чтобы увидеть окно приветствия. http://www.seostella.com/ru/article/2012/01/13/spring-web-flow-hi-john-chast-3-modifikaciya.html |
Spring WebFlow. Использование ссылки (<a>) вместо кнопки (<input>) для отправки событияВ Spring WebFlow для отправки событий обычно используются элементы управления input с именем события, которое необходимо отправить. Но если от пользователя не требуется ввода каких-либо данных, то есть смысл заменить кнопку на обычную ссылку. Это можно сделать, используя служебную переменную ${flowExecutionUrl} и параметр _eventId. Также, с событием можно передавать необходимые параметры. http://www.seostella.com/ru/article/2012/01/14/spring-webflow-ispolzovanie-ssylki-a-vmesto-knopki-input-dlya-otpravki-sobytiya.html |
Spring Web Flow. Тесты. Часть 1. Настройка проектаПродолжаем усложнять задачу как пример веб-приложения на Spring Web Flow. В этот раз будет наглядно показано, что сложная задача решается с помощью Spring Web Flow достаточно быстро и просто. В первой из 5-и частей описан процесс настройки проекта под будущее веб-приложение. http://www.seostella.com/ru/article/2012/01/15/spring-web-flow-testy-chast-1-nastroyka-proekta.html |
Spring Web Flow. Тесты. Часть 2. Модель и КонтроллерC помощью простого примера вряд ли удастся показать всю мощь Spring Web Flow, однако сложную программу не стоит использовать в качестве учебного примера. Поэтому в основе примера будет что-то среднее, а именно - программа для проверки знаний пользователя с помощью тестов. То есть, пользователю задаются вопросы и предлагаются несколько вариантов ответа на каждый из них. http://www.seostella.com/ru/article/2012/01/16/spring-web-flow-testy-chast-2-model-i-kontroller.html |
Spring Web Flow. Тесты. Часть 3. Обзор flowКак и в предыдущей статье о Spring Web Flow, в данном примере используются вложенные flow. На этот раз их будет два: один отвечает за авторизацию пользователя, второй - за прохождение тестирования пользователем. Родительский flow управляет взаимодействием между вышеупомянутыми списками действий. http://www.seostella.com/ru/article/2012/01/17/spring-web-flow-testy-chast-3-obzor-flow.html |
Spring Web Flow. Тесты. Часть 4. Flow АвторизацииАвторизация. Перед прохождением тестов пользователю предлагается войти в систему под своим именем. Если имя в системе не существует, то программа просит пользователя зарегистрироваться. В этой части статьи напишем очень простой пример авторизации с использованием Spring Web Flow. http://www.seostella.com/ru/article/2012/01/18/spring-web-flow-testy-chast-4-flow-avtorizacii.html |
Spring Web Flow. Тесты. Часть 5. Flow ТестированияВ этой части рассмотрим реализацию проверки знаний. Во время прохождения тестов пользователь имеет право допустить 3 ошибки. После каждой из первых двух ошибок пользователю отображается окно с информацией об этом. После 3-й ошибки пользователю сообщается, что тест завершился неудачей. После успешного прохождения тестов, пользователю отображается список всех вопросов, напротив каждого из которых стоит пометка о правильности ответа. http://www.seostella.com/ru/article/2012/01/19/spring-web-flow-testy-chast-5-flow-testirovaniya.html |
Новая версия фреймворка Spring Roo 1.2.1Команда Spring Roo выпустила новую 1.2.1.RELEASE версию своего продукта. Это первый релиз ветки 1.2, который включает исправления ряда ошибок в мульти-модуле поддержки Maven и JSF/PrimeFaces. Также повышена производительность Spring Roo и добалена поддержка PrimeFaces 3.1 и Google App Engine 1.6.2. http://www.seostella.com/ru/news/2012/02/11/novaya-versiya-freymvorka-spring-roo-1-2-1.html |
Использование аннотации @Autowired в Spring 3Аннотация @Autowired отмечает конструктор, поле или метод как требующий автозаполнения инъекцией зависимости Spring. Данная аннотация впервые появилась в Spring 2.5. Чтобы аннотация @Autowire присвоила переменной значения соответствующего bean'а, необходимо чтобы этот bean либо был объявлен в xml конфигурации приложения, либо существовал класс с соответствующей иньекцией управления. http://www.seostella.com/ru/article/2012/02/12/ispolzovanie-annotacii-autowired-v-spring-3.html |
Методы для создания и уничтожения Bean. Аннотации @PostConstruct и @PreDestroy в SpringЕсли появилась необходимость добавить какой-то код после создания bean'а, воспользуйтесь аннотацией @PostConstruct. На момент вызова метода, использующего аннотацию @PostConstruct, все объекты, помеченные аннотацией @Autowired уже будут созданны. Если необходимо выполнить какие-то действия перед уничтожением bean'а, воспользуйтесь аннотацией @PreDestroy. http://www.seostella.com/ru/article/2012/02/12/metody-dlya-sozdaniya-i-unichtozheniya-bean-annotacii-postconstruct-i-predestroy-v-spring.html |
Вышла новая версия популярного Java-фреймворка Spring Framework 3.1.1В новой версии исправлено множество ошибок и добавлены 4 новые особенности: фреймворк стал более гибким с переводами для SQLException; добавлено новое исключение QueryTimeoutException в иерархию DataAccessException; флэш атрибуты с RedirectView; добавлена возможность переопределить ReflectiveMethodResolver так что подклассы могут предоставлять собственные статические методы. http://www.seostella.com/ru/news/2012/02/17/vyshla-novaya-versiya-populyarnogo-java-freymvorka-spring-framework-3-1-1.html |
Вышла новая версия Spring Web Flow 2.3.1Spring Web Flow 2.3.1 доступен для скачивания. Данная версия содержит обновление до Spring 3.1.1 и JavaServer Faces 2.1.7, а также ряд исправлений ошибок. http://www.seostella.com/ru/news/2012/03/27/vyshla-novaya-versiya-spring-web-flow-2-3-1.html |
Spring 3 и Hibernate 3. Часть 1В этом примере рассмотрим использование Spring 3 совместно с Hibernate 3. В качестве среды разработки будет использована SpringSource Tool Suite, а база данных - MySQL. В этой части рассмотрена только настройка для будущего приложения. Вся логика описана во второй части статьи. http://www.seostella.com/ru/article/2012/04/12/spring-3-i-hibernate-3-chast-1.html |
Spring 3 и Hibernate 3. Часть 2Вторая часть статьи о совместном использовании Spring 3 и Hibernate 3. Будут рассматрены базовые принципы работы с объектами, DAO-классами и сервисами. http://www.seostella.com/ru/article/2012/04/13/spring-3-i-hibernate-3-chast-2.html |
Spring 3 и @Controller. Часть 1В первой части статьи рассмотрим создание контроллеров при использовании Spring Framework 3-й версии и Spring MVC в частности. Остановимся на аннотациях @Controller, @RequestMapping и @PathVariable, а также поговорим о классах модели Model и ModelAndView. http://www.seostella.com/ru/article/2012/04/23/spring-3-i-controller-chast-1.html |
Spring 3 и @Controller. Часть 2Продолжаем тему контроллера в Spring Framework. В этой части будет рассмотрено: использования стандартных классов HttpServletRequest и HttpSession; возможность использования Ant-подобных адресов; распределение запросов по методам, используя их заголовки; мощный класс WebRequest; классы Local и Principal; аннотации @RequestParam, @RequestHeader и @ResponseBody. http://www.seostella.com/ru/article/2012/04/23/spring-3-i-controller-chast-2.html |
@ModelAttribute и Spring MVCВ Spring MVC есть очень полезная аннотация - @ModelAttribute. Благодаря использованию этой аннотации можно существенно уменьшить код контроллера и облегчить его понимания, а заодно и улучшить его. http://www.seostella.com/ru/article/2012/04/24/modelattribute-i-spring-mvc.html |
Кодировка запроса в Spring с использованием CharacterEncodingFilterВ Spring Framework есть очень полезный фильтр CharacterEncodingFilter, который позволяет указать кодировку для запроса. Это полезно, поскольку современные браузеры, как правило, не устанавливают кодировка символов, даже если таковая указана на HTML-странице или форме. Этот фильтр может либо применить кодировку по умолчанию, если в запросе не указана кодировка, либо обеспечить кодирование запроса в нужную кодировку вне зависимости от того, установлена она в запросе или нет ("forceEncoding"="true"). http://www.seostella.com/ru/article/2012/04/25/kodirovka-zaprosa-v-spring-s-ispolzovaniem-characterencodingfilter.html |
@SessionAttributes. Сессия в Spring MVCВ этой статье рассмотрим работу с аннотацией @SessionAttributes в Spring MVC. Как понятно из названия, эта аннотация предназначена для работы с атрибутами сессии. А именно, @SessionAttributes объявляет атрибут(ы) сессии, используемый(ые) конкретным обработчиком. http://www.seostella.com/ru/article/2012/04/26/sessionattributes-sessiya-v-spring-mvc.html |
RedirectAttributes. Flash-переменные в Spring MVCВ этой статье рассмотрим новую возможность Spring MVC 3.1, а именно - использование RedirectAttributes. Этот класс используется для передачи так называемых flash-атрибутов, то есть, значений, которые будут доступны только следующему запросу и самоликвидируются для последующих запросов. Обычно они служат для отображения пользователю информации по поводу успешной или неуспешной отправки формы. http://www.seostella.com/ru/article/2012/04/26/redirectattributes-flash-peremennye-v-spring-mvc.html |
Исключение "Cannot create a session after the response has been committed"Эта ошибка происходит в случае, когда Ваш код пытается получить доступ, использовать или создать объект HttpSession в то время, когда Ваше представление уже записало данные в исходящий поток сервлета. Но использовать HttpSession уже слишком поздно так как это требует добавления HTTP-заголовка Set-Cookie в исходящий поток сервлета, что можно сделать только в начале отправления ответа браузеру. Это и является причиной возникновения ошибки. В статье описано несколько способов устранения этого исключения. http://www.seostella.com/ru/article/2012/04/26/isklyuchenie-cannot-create-a-session-after-the-response-has-been-committed.html |
Spring 3 и @Controller. Часть 3 (@CookieValue и @RequestHeader)В заключительной части серии статей "Spring 3 и @Controller" будет рассмотрено только 2 простые аннотации: @CookieValue и @RequestHeader. Аннотация @CookieValue позволяет привязать параметр метода контролера к HTTP-cookie. Аннотация @RequestHeader позволяет привязать параметр метода контроллера к заголовку запроса. http://www.seostella.com/ru/article/2012/04/27/spring-3-i-controller-chast-3-cookievalue-i-requestheader.html |
Interceptor. Перехват запросов в Spring MVCВ Spring MVC есть возможность производить некие действия перед обработкой запроса, сразу после его обработки и перед отправкой ответа клиенту. Всё это можно сделать с помощью так называемых Interceptor'ов. Эти перехватчики (Interceptor) позволяют выполнять задачи, которые являются общими для каждого запроса или набора запросов, без необходимости копировать код в каждом методе контроллера. Например, можно выполнять аутентификацию пользователя прежде, чем запрос достигнет Вашего контроллера и, в случае успеха, получить некоторые дополнительные данные о пользователе из базы данных, добавив их в объект HttpServletRequest. С другой стороны, если запрос не прошел установленную Вами проверку (например, входит в список "опасных" запросов, похожих на хакерские) Вы можете перенаправить пользователя на другую страницу. http://www.seostella.com/ru/article/2012/04/27/interceptor-perehvat-zaprosov-v-spring-mvc.html |
Spring MVC и несколько ViewResolverВ Spring MVC есть возможность создавать цепочки объектов ViewResolver. Таким образом, обработка разных запросов может осуществлятся разными ViewResolver'ами и, соответственно, возвращаемый результат может быть абсолютно разным. http://www.seostella.com/ru/article/2012/04/28/spring-mvc-i-neskolko-viewresolver.html |
Обработка HTTP-ошибок 404, 500, 503 в Spring MVCОбязательным условием любого уважающего себя сайта является корректная обработка HTTP-ошибок, а не отображения вместо них стандартной страницы с информацией об ошибке и ее описанием в стандартном для языка Java вида. В этой серии статей описывается несколько способов обработки как HTTP-ошибок, так и исключений. В конце статьи будет приведен исходник приложения, демонстрирующего/ обработку ошибок и исключений. http://www.seostella.com/ru/article/2012/05/07/obrabotka-http-oshibok-404-500-503-v-spring-mvc.html |
@ExceptionHandler в Spring и обработка ошибокПервый из рассматриваемых способов обработки ошибок - с помощью аннотации @ExceptionHandler. Эта аннотация обрабатывает исключение, произошедшее в контроллере, как обычный запрос. http://www.seostella.com/ru/article/2012/05/08/exceptionhandler-v-spring-i-obrabotka-oshibok.html |
SimpleMappingExceptionResolver в Spring и обработка исключенийСледующий способ обработки исключений - с использованием SimpleMappingExceptionResolver. Этот способ является более глобальным по сравнению с аннотацией @ExceptionHandler, рассмотренной в предыдущей части. Если аннотация @ExceptionHandler ловит только исключения, произошедшие в контроллере, то SimpleMappingExceptionResolver ловит исключения, произошедшие в любой части приложения. http://www.seostella.com/ru/article/2012/05/09/simplemappingexceptionresolver-v-spring-i-obrabotka-isklyucheniy.html |
SimpleMappingExceptionResolver и модель (ModelAndView)Как уже было сказано ранее, главным недостатком использования SimpleMappingExceptionResolver при отлове исключений - это отсутствие возможности добавить данные в модель. В этой статье рассмотрим способ обойти это ограничение, создав класс, унаследованный от SimpleMappingExceptionResolver. http://www.seostella.com/ru/article/2012/05/09/simplemappingexceptionresolver-i-model-modelandview.html |
Ошибки HTTP-протокола в Spring MVCВ завершающей статье об обработке ошибок в Spring MVC рассмотрим обработку стандартных ошибок HTTP. Статья завершится кодом проекта, который содержит пример из каждой из рассматриваемых в этой серии статей. http://www.seostella.com/ru/article/2012/05/10/oshibki-http-protokola-v-spring-mvc.html |
Формы и валидация форм в SpringДинамическое взаимодействие пользователя и веб-сайта с использованием форм является одной из важнейших деталей сайта. В этой статье будет рассказано о создании форм и проверки данных формы с использованием Spring MVC. http://www.seostella.com/ru/article/2012/06/20/formy-i-validaciya-form-v-spring.html |
Проверка данных формы с помощью аннотаций (@Size, @Email и др) в Spring MVCЭта статья является продолжением статьи о формах в Spring и о проверке введенных пользователем данных. Будут рассмотрены аннотации, заменяющие валидатор. http://www.seostella.com/ru/article/2012/06/21/proverka-dannyh-formy-s-pomoschyu-annotaciy-size-email-i-dr-v-spring-mvc.html |
Аннотация для проверки равенства двух полей формы в Spring MVCКак уже вспоминалось в предыдущей статье, в этой пойдет речь о создании собственной аннотации для проверки кореектности введенных данных. В качестве примера будет рассмотрено сравнение двух паролей на форме регистрации. http://www.seostella.com/ru/article/2012/06/21/annotaciya-dlya-proverki-ravenstva-dvuh-poley-formy-v-spring-mvc.html |
Spring MVC 3 и Apache Tiles 2Apache Tiles - один из самых популярных шаблонизаторов для веб-приложений, основаных на Java. Spring - наиболее используемый фреймворк на Java. В этой статье будет рассказано про интеграцию Apache Tiles и Spring Framework. http://www.seostella.com/ru/article/2012/06/22/spring-mvc-3-i-apache-tiles-2.html |
Тег spring:url в Spring MVCВ этой статье речь пойдет об полезном теге url из набора тегов фреймворка Spring MVC. Как понятно из названия, этот тег служит для создания URL. http://www.seostella.com/ru/article/2012/06/26/teg-spring-url-v-spring-mvc.html |
Введение в Spring Security. Hello World!Этой статьей начинается серия статей об Spring Security - Java-фреймворк безопасности, который широко используется Spring-сообществом, главным образом в веб. http://www.seostella.com/ru/article/2012/06/27/vvedenie-v-spring-security-hello-world.html |
Spring Security. Страница LoginВ этой статье будет рассказано как привести к произвольному виду страницу логина в Spring Security версии 3.x. http://www.seostella.com/ru/article/2012/07/03/spring-security-stranica-login.html |
Как получить пользователя в Spring SecurityВ этой короткой статье будет рассказано как получить объект зарегистрированного пользователя в Spring Security. http://www.seostella.com/ru/article/2012/07/04/kak-poluchit-polzovatelya-v-spring-security.html |
Logout в Spring SecurityВ этой статье будет рассказано о возможности выхода пользователя из системы (logout) и связанные с этим моменты в Spring Security версии 3.x. http://www.seostella.com/ru/article/2012/07/04/logout-v-spring-security.html |
Spring EL expressions в Spring SecurityКак уже упоминалось в предыдущей, эта статья будет посвящена использованию выражений Spring EL expressions в Spring Security. Будут рассмотрены все возможные стандартные выражения. http://www.seostella.com/ru/article/2012/07/05/spring-el-expressions-v-spring-security.html |