- мощная платформа с открытым кодом, предназначенная для разработки сложных интернет-приложений на языке программирования Java. включает в себя такие технологии как AJAX, JSF, JPA, EJB 3.0 и BPM. Из своего опыта могу сказать, что работать с очень удобно. В этом фреймворке уже реализовано много задач, с которыми чассто встречается разработчик. иногда поражает небольшим количеством кода, с помощью которого реализуются сложные задачи.

Начать работать с очень просто. Для этого вам всего лишь необходимо установить Application Server, который можно найти здесь, а также фреймворк Seam.  Каркасы приложений можно создать с помощью gen - утилиты командной строки. Так же, для работы с этим фреймворком существуют плагины для среды разработки . Подробнее о них можно узнать по адресу http://www..org/tools . В данной статье приложение будет разрабатываться с помощью этих плагинов.

Начало работы с

Давайте создадим каркас простого приложения в среде . Для этого, после установки Tools, переключимся в перспективу “”. Далее, выберем в меню File->New-> web project. В появившемся меню введем название проекта (с маленькой буквы), создадим новую среду выполнения и новый сервер, на котором будет работать наше приложение. В качестве среды и сервера, необходимо выбрать AS той версии, которую вы установили. В качестве конфигурации выберите “Dynamic web project with 2.1″. Если вы установили другую версию - выберите ее. Нажав кнопку “далее”, пропускаем несколько экранов - в них мы оставим конфигурацию по умолчанию. Интерес для нас представляет экран, на котором находятся настройки . В поле Runtime укажите путь к директории с установленным . В группе настроек базы данных выберите подходящий вам сервер и введите настройи доступа выбрав необходимый JDBC драйвер. Проверьте соединение с базой данных. В группе Code Generation введите имена пакетов для вашего проекта. Нажмите кнопку “Finish”. Конфигурация завершена.

В нижней части экрана выберите вкладку “ server view”. На ней вы увидите созданных в процессе конфигурации сервер. Запустите его. Теперь, в браузере вы можете увидеть вновь созданное приложение:

Скелет приложения, созданный с помощью Seam gen

entity

Для создания новой модели данных воспользуйтесь пунктом меню File->New-> entity. Вы увидите окно, где можно указать параметры создаваемой сущности. Достаточно ввести только имя класса. Остальные поля будут заполнены автоматически. Для данного примера я создал сущность Article - статья. После завершения операции, в папке src/hot можно увидеть класс ArticleHome, предназначенный для работы со списком статей и ArticleList, предназначенный для редактирования параметров статьи. В папке src/main будет находится класс Article - сама модель данных. Код этого класса необходимо изменить таким образом, чтобы он соответствовал вашим задачам. В моем случае я избавился от полей name и version. Вместо них добавил title и text. Код этого класса выглядит следующим образом:

@Entity
public class Article implements Serializable {
	private static final long serialVersionUID = 1L;
	private Long id;
	private String title;
	private String text;

	@Column(length = 200)
	@NotEmpty
	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	@Column(length = 3000)
	@NotEmpty
	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	@Id
	@GeneratedValue
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

}

В папке WebContent появились страницы списка статей и редактирования статьи - articleList.xhtml и article.xhtml. Изменим код страницы articleList.xhtml таким образом, чтобы на этой странице выводились только заголовки статей, являющиеся ссылками на страницу редактирования отдельной статьи:

<h:dataTable id="articleList" var="article"
	value="#{articleList.resultList}"
	rendered="#{not empty articleList.resultList}">
	<h:column>
		<f:facet name="header">Title</f:facet>
		<s:link id="article" value="#{article.title}" propagation="none"
			view="/article.xhtml">
			<f:param name="articleId" value="#{article.id}" />
		</s:link>
	</h:column>
</h:dataTable>

Код страницы редактирования статьи необходимо тоже изменить:

<rich:panel>
	<f:facet name="header">Edit article</f:facet>

	<s:decorate id="titleField" template="layout/edit.xhtml">
		<ui:define name="label">Title</ui:define>
		<h:inputText id="title" required="true"
			value="#{articleHome.instance.title}" />
	</s:decorate>

	<s:decorate id="textField" template="layout/edit.xhtml">
		<ui:define name="label">Text</ui:define>
		<h:inputTextarea id="text" required="true"
			value="#{articleHome.instance.text}" cols="23" rows="10" />
	</s:decorate>

	<div style="clear: both" />

</rich:panel>

После перезапуска сервера, перейдя на страницу articleList. можно увидеть список статей и добавить новую:

Список статей

Приложение на за 5 минут!

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

Более подробно будет рассмотрен в следующих статьях.

Связанные записи