Wicket

Apache Wicket — фреймворк с открытым исходным кодом для создания веб-приложений. Разработан Джонатаном Локе (англ. Jonathan Locke) в 2004 году. С июня 2007 года является проектом Apache Software Foundation[2].

Apache Wicket
Тип веб-фреймворк
Разработчик Apache Software Foundation
Написана на Java
Операционная система Кроссплатформенное ПО
Первый выпуск 21 июня 2010[1]
Аппаратная платформа Java Virtual Machine
Последняя версия 8.0.0 (22 мая 2018 года)
Состояние Активное
Лицензия Apache License 2.0
Сайт wicket.apache.org

В отличие от многих фреймворков, которые управляются запросами, Wicket использует подход, основанный на использовании компонентов. Состояние компонентов пользовательского интерфейса сохраняется, когда пользователь запрашивает новую страницу, и затем восстанавливается, если запрос повторяется.

Парадигма программирования Wicket знакома разработчикам Java. Им не нужно знать ничего, кроме Java и HTML. AJAX можно использовать без знания JavaScript.

Wicket очень хорошо масштабируется. Если вы работаете в команде из 2 или из 20 человек, вы будете иметь все возможности для разделения функциональности до мельчайших кусочков. В зависимости от потребностей вашего проекта и ресурсов, вы можете разделить труд разработчиков до целых страниц, (многоразовых) панелей, или даже более специализированных компонентов. Из-за того, что Wicket использует обычные HTML-страницы для описания внешнего вида страниц и панелей, вы можете использовать дизайнеров и специалистов HTML/CSS для работы над внешним видом, и им не нужно знать Java или какой-либо другой язык или синтаксис.

Подход Wicket:

  1. Только Java и HTML — Для настроек достаточно одного стандартного файла web.xml. Не нужно тратить время на изучение правил XML-файлов или нового языка;
  2. Настоящее повторное использование — Конечная страница может состоять из множества мелких блоков, объединенных в единое целое. Написанный код можно поместить в jar-файл и повторно использовать без изменений;
  3. Просто и мощно одновременно — Wicket не загроможден множеством запутанных API;
  4. Использование AJAX возможно без единой строчки на JavaScript — Да, это возможно, потому что большинство кода JavaScript генерируются самим Wicket. Но, если вы желаете, можете внедрить JavaScript и вообще всё, что угодно. Ну, или почти всё.

Wicket удобен тем, что в нём отсутствуют многочисленные XML-файлы, все настройки делаются в коде. Если требуются динамические настройки через XML, их всегда можно внедрить. Программный код полностью разделён с HTML. Программный код состоит только из Java, а в HTML добавляются только простые wicket-теги.

Пример кода

Приложение типа Hello World, состоящее из 4-х файлов:

HelloWorld.html

Файл шаблона разметки на HTML.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"
      xml:lang="en" lang="en">

<body>
    <span wicket:id="message" id="message">Message goes here</span>
</body>
</html>
HelloWorld.java

Компонент-страница, которая будет привязана к шаблону разметки. В данном случае, производится переопределение текста в компоненте "message" на текст "Hello World!".

package org.wikipedia.wicket;

import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;

public class HelloWorld extends WebPage {
    /**
     * Constructor
     */
    public HelloWorld() {
        add(new Label("message", "Hello World!"));
    }
}
HelloWorldApplication.java

Основной класс приложения, который направляет запросы c домашней страницы к компоненту-странице HelloWorld.

package org.wikipedia.wicket;

import org.apache.wicket.protocol.http.WebApplication;

public class HelloWorldApplication extends WebApplication {
    /**
     * Constructor.
     */
    public HelloWorldApplication() {
    }

    /**
     * @see org.apache.wicket.Application#getHomePage()
     */
    public Class getHomePage() {
        return HelloWorld.class;
    }
}
web.xml

Дескриптор развертывания, который устанавливает Wicket в качестве обработчика по умолчанию для сервлета.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
         id="WebApp_ID" version="2.5">
    <display-name>Wicket Example</display-name>
    <filter>
        <filter-name>HelloWorldApplication</filter-name>
        <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
        <init-param>
            <param-name>applicationClassName</param-name>
            <param-value>org.wikipedia.wicket.HelloWorldApplication</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>HelloWorldApplication</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

Примечания

  1. https://projects.apache.org/json/projects/wicket.json
  2. 3… 2… 1… Apache Wicket (недоступная ссылка). Дата обращения: 27 июня 2011. Архивировано 14 июля 2011 года.

Литература

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.