Кіріспе

Apache Wicket, көбінесе Wicket деп аталатын, Java бағдарламалау тілі үшін компоненттік негіздегі веб-қосымшалар фреймворкі, JavaServer Faces және Tapestry сияқты ұғымдық тұрғыдан ұқсас. Ол алғаш рет 2004 жылдың сәуір айында Джонатан Локк жазған. 1.0 нұсқасы 2005 жылдың маусым айында жарияланды. 2007 жылдың маусым айында Apache жобасының ең жоғары деңгейіне көтерілді.

Негізгі себептері

Дәстүрлі модель-көрініс-контроллер (MVC) фреймворктері толық сұраулар мен толық беттермен жұмыс істейді. Әрбір сұрау циклында кіріс сұрау контроллер объектісінің әдісіне бағытталады, ол дереу толық шығыс жауабын жасайды, әдетте, мамандандырылған үлгі белгішесімен жазылған көріністі толтыру үшін модельден деректерді алады. Бұл қолданбаның басқару ағынын қарапайым және түсінікті етеді, бірақ контроллерде кодты қайта пайдалануды қиындатады. Ал Wicket, Swing сияқты күйлі GUI фреймворктерінің үлгісімен жақын дамыған. Wicket қолданбалары – компоненттер ағашы, олар тыңдаушы делегаттарын сілтемелер мен формаларға келетін HTTP сұрауларына Swing компоненттерінің тышқанның және пернетақтаның әрекеттеріне жауап беруі сияқты жауап беру үшін пайдаланады. Wicket компоненттік фреймворк ретінде жіктеледі.

Дизайн

Wicket шаблонды құру үшін қарапайым XHTML қолданады (бұл презентация мен бизнес-логиканы нақты ажыратуды қамтамасыз етеді және шаблонды әдеттегі WYSIWYG дизайн құралдарымен өңдеуге мүмкіндік береді). Әрбір компонент XHTML-де аталған элементке байланыстырылады және соңғы нәтижеде осы элементті көрсетуге жауапты болады. Бет – бұл жоғарғы деңгейдегі компонент болып табылады және дәл бір XHTML шаблонымен жұптастырылады. Арнайы тегті пайдаланып, жеке компоненттер тобын «панель» деп аталатын бір компонентке біріктіруге болады, осыдан кейін оны сол бетте, басқа беттерде немесе тіпті басқа панельдерде толығымен қайта пайдалануға болады. Әрбір компонент өзінің моделімен жабдықталады, ол компоненттің күйін көрсетеді. Фреймворк компоненттердің өздерінің модельдерімен қалай өзара әрекеттесетінін білмейді, олар автоматты түрде сериализацияланатын және сұраулар арасында сақталынатын түсініксіз объектілер ретінде қарастырылады. Дегенмен, күрделі модельдерді бөліп, әрбір сұраныс циклінің басында және соңында олардың сақталуын және қалпына келтірілуін басқаруға мүмкіндік беретін құралдармен жабдықтауға болады. Wicket нақты объектілерді сақтау немесе ORM қабатын талап етпейді, сондықтан қолданбалар көбінесе модель ретінде Hibernate объектілерінің, EJB немесе POJO-ның комбинациясын пайдаланады. Wicket-те барлық серверлік күй автоматты түрде басқарылады. Күйді сақтау үшін HttpSession объектісін немесе осыған ұқсас wrapper-ді тікелей пайдалану қажет емес. Оның орнына, күй компоненттермен байланыстырылады. Әрбір серверлік бет компоненті күйлі компоненттердің ішкі тізбегін қамтиды, мұнда әрбір компоненттің моделі ақырында POJO (Plain Old Java Object) болып табылады.

Wicket қарапайымдыққа ұмтылады. Wicket-те оқу үшін конфигурациялық файлдар жоқ. Wicket – компоненттік құрылымға тұрақты көзқараспен қарастыратын қарапайым сыныптар кітапханасы.

Құралымдары

Негізгі компоненттер, мысалы, формалар, сілтемелер, қайталағыштар және т.б. кіріктірілген.