Pull to refresh

Первые шаги с Netbeans и Wicket

Reading time 4 min
Views 7.2K
Доброго времени суток. Недавно пришлось поюзать Java фреймворк по имени Wicket. На великом Хабре искал инфу про нее, но ее оказалось слишком мало и вот решил поделиться. Итак, пошли:

После того, как пару лет назад пересел на NetBeans, игры с командной строкой при создании веб-приложений меня особо не вдохновляют, поэтому, когда нужно использовать (проверить, протестить, посмотреть и т.п.) какой-нибудь фреймворк, то первым делом ищю Plugin для NetBeans, и только потом, в случае неудачи, обращаюсь к альтернативным (для меня) путям. В случае с Wicket-ом все оказалось хорошо. На официальном сайте хоть и есть раздел IDE Plugins и там даже есть и NetBeans в списке, но линки которые я там нашел толком не помогли найти плагин. Следующим шагом был поиск среди доступных плагинов NetBeans, но и там ждала меня неудача. Последняя попытка — поиск на сайте NetBeans в разделе Plugins. Ввел первые буквы в поисковом поле Name над таблицей плагинов и нашел — Wicket 1.4 Support (This plugin adds wicket support for NetBeans IDE 7.0.). Скачал его и установил (Tools -> Plugins -> Downloaded -> Add Plugins -> Install). Более подробно об этом шаге можно прочитать в FAQ-е на сайте NetBeans-а.
После установки плагина NetBeans просит перезапуститься. Далее, нам нужно создать новый веб-проект и при выборе платформ выбираем Wicked 1.4.10, и идем дальше… (Java Web -> Web-Application -> -> -> Wicked 1.4.10 (ставим галочку) –>->). Итак, NetBeans сгенерировал нам проект с Hello World-ом. Теперь давайте разберемся с проектом, который ждет нас:

image

Не теряйтесь, когда, запустив приложение, увидите результат, но не увидите файлов в папке веб страницы. Зато в пакете com.myapp.wicket есть следующие файлы:

Application.java
BasePage.html
BasePage.java
FooterPanel.html
FooterPanel. java
HeaderPanel.html
HeaderPanel.java
HomePage.html
HomePage.java


Как вы успели заметить, все файлы идут парами, один только Application.java неприлично выделяется среди пар html-java файлов. В нем есть информация о том, какой файл (страницу) запускать первым. Так же можно прописать определенные конфиги, но это не входит в рамки данной статьи.

image

Как вы видите, «конфигуратор» возвращает в качестве домашней страницы класс HomePage. До того как будем рассматривать этот файл пару слов о структуре.

image

В данной диаграмме классы WebPage и Panel родные Wicket-овские, а все остальные созданы NetBeans-ом. Каждый из сгенерированных классов имеет пару с тем же именем, но с расширением html. В данном примере, файл BasePage.html определяет общую структуру страницы, а BasePage.java определяет функционал и сами данные которые размещяются. С помощью DOM Wicket находит нужные элементы из HTML файлов и заменяет их тем, что вы пишите в соответствующих java файлах. Это легко объяснить с помощью рисунка в котором приведены рядом HomePage.java (слева) и HomePage.html (справа):

image

Как видно из рисунка, в нашу домашнюю страничку добавляется новый Label. Он принимает два параметра, где первый это ключевое слово, по которому Wicket определить, куда вставить Label, а второе – это собственно содержимое. Разбор других страниц и панелей можно произвести аналогично, это я оставляю сделать читателю самому, а сам тем временем покажу вам, как создать простую форму, используя этот замечательный фреймворк. Для этого сначала нужно выбрать, где создать нашу форму. Пусть это будет BasePage.java и BasePage.html. Сначала создадим HTML-форму.

<form wicket:id="forma">
<input type="text" wicket:id="login" />
<input type="password" wicket:id="password" />
/>




Таким незамысловатым кодом мы создали простейшую форму авторизации.
Теперь перейдем к самому интересному – к файлу BasePage.java. Здесь все немножко сложнее. Алгоритм следующий:
Мы создаем объекты TextField и PasswordTextField, чтобы слинковать их с элементами страницы. Далее, создаем класс, который будет наследован от класса Form, он в свою очередь будет связан с нашей формой, в этом же классе переопределяем метод onSubmit(), который отвечает за то, что произойдет, когда пользователь нажмет на кнопку отправки данных. Потом остается только добавить объекты TextField и PasswordTextField в форму и саму форму добавить на страницу. Как видим, все логично, и нет ничего сверхъестественного. Ниже приведен код со страницы BasePage.java.

public abstract class BasePage extends WebPage {

TextField login;
PasswordTextField password;

public BasePage() {
super();
add(new HeaderPanel("headerpanel", "Welcome To Wicket"));
add(new FooterPanel("footerpanel", "Powered by Wicket and the NetBeans Wicket Plugin"));
add(new footer("footer"));

login = new TextField("login", new Model(""));
password = new PasswordTextField("password", new Model(""));
Form form = new LoginForm("forma");
form.add(login);
form.add(password);
add(form);

}

class LoginForm extends Form{
public LoginForm(String id)
{
super(id);
}

public void onSubmit()
{
System.out.println("Login:"+login.getModelObject()+" -- Password:"+password.getModelObject());
}
}
}


Вот и все. Теперь при нажатии на кнопку, в консоли можно увидеть введенные имя пользователя и пароль. Всем Успехов и счастья.
Tags:
Hubs:
+18
Comments 13
Comments Comments 13

Articles