Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Wicket.docx
Скачиваний:
7
Добавлен:
23.03.2015
Размер:
68.23 Кб
Скачать

Стандартные компоненты

В нашем примере использовались стандартные компоненты Wicket: FeedbackPanel и TextField. Ниже приводится список основных компонентов, предоставляемых библиотекой, и HTML-теги, с которыми они обычно используются.

Название компонента

Назначение

Тег HTML

FeedbackPanel

Отображение ошибок пользователя

<span>

Image

Изображение

<img>

Label

Динамически изменяемая текстовая метка

<span>, <td>

MultilineLabel

Многострочная текстовая метка

<span>, <td>

Link

Ссылка

<a>

TextArea

Область ввода текста

<textarea>

TextField

Поле ввода текста

<input type=”text”>

PasswordTextField

Поле ввода пароля

<input type=”password”>

CheckBox

Флажок

<input type=”checkbox”>

RadioChoice

Переключатель

<input type=”radio”>

Button

Кнопка

<input type=”submit”>

DropDownChoice

Выпадающий список

<select>

ListChoice

Список

<select>

Это далеко не полный список. Помимо перечисленных базовых компонентов, Wicket предоставляет средства для организации табличного просмотра данных (классы DataView, DataTable, GridView), организации постраничного просмотра таблиц (PagingNavigator), просмотра данных в виде деревьев (Tree), генерации динамических изображений (RenderedDynamicImageResource). В данной статье возможности этих классов не рассматриваются.

Рассмотрим пример использования некоторых стандартных компонентов. Создадим страницу, которая позволяет пользователю выбрать цвет из списка и отображает результаты выбора. Файл разметки SelectionPage.html приведен ниже.

<html xmlns:wicket="http://wicket.sourceforge.net/">

<head>

<title>Выбор цвета</title>

</head>

<body>

<form wicket:id="form">

Ваш предыдущий выбор: <span wicket:id="colorLabel">нет</span><br/>

Выберите цвет:

<select wicket:id="color">

<option>Красный</option>

<option>Желтый</option>

<option>Зеленый</option>

</select>

<input wicket:id="submitButton" type="submit" value="Выбор"/><br/>

<a wicket:id="selectLink" href="#">Выход</a>

</form>

</body>

</html>

Соответствующий класс-контроллер использует компоненты Label, DropDownChoice, Link и Button.

public class SelectionPage extends WebPage

{

private final static List COLORS = Arrays.asList(new String[]{"красный", "желтый", "зеленый"});

public final class SelectionForm extends Form

{

private String selectedColor = "нет";

public String getSelectedColor()

{

return selectedColor;

}

public void setSelectedColor(String selectedColor)

{

this.selectedColor = selectedColor;

}

public SelectionForm(String s)

{

super(s);

add(new Label("colorLabel", new PropertyModel(this, "selectedColor")));

add(new DropDownChoice("color", new PropertyModel(this, "selectedColor"), COLORS));

add(new Link("selectLink")

{

public void onClick()

{

redirectTo(newPage(NextPage.class));

}

});

add(new Button("submitButton")

{

protected void onSubmit()

{

System.out.println("Selected color: " + getSelectedColor());

}

});

}

}

public SelectionPage()

{

add(new SelectionForm("form"));

}

}

В данном примере использована модель PropertyModel, посредством которой атрибут selectedColor класса SelectionForm связывается с классами Label и DropDownChoice. Компонент Link имеет собственный обработчик события onClick(), передающий управление другой странице. Компонент Button позволяет получить выбранное пользователем значение с помощью обработчика onSubmit().