Wicket and Lift - совсем другие звери. У меня есть некоторые знания об обеих структурах (но далеки от уровня эксперта, который вы обычно видите здесь):
Wicket: Каждая страница на веб-сайте имеет страницу HTML-шаблона и класс поддержки Java/Scala. Магия Wicket заключается в том, чтобы связать страницу шаблона HTML с соответствующим классом и сопоставить каждый идентификатор Wicket в шаблоне с правильным методом в классе, чтобы данные были видны на сгенерированной странице HTML, отправленной клиенту. Вот и все. Wicket - это чистый Web и ничего более. Я очень легко сочиняю ваши собственные графические компоненты в Wicket и наследую их.
Лифт: лифт был создан Дэвидом Поллаком как реакция на проблемы, с которыми он столкнулся с Rails. Ему нужна была производительность и безопасность. Подъем быстрее и надежнее, чем Rails. Это на самом деле очень безопасно и автоматически обрабатывает SQL-инъекции, CRSF, XXS, повторные атаки.
Подъем делает то же самое, что и Rails (карты в DB), но сильно отличается от Rails. Умственное наследие Rails видно, так как некоторые из API в Lift используют синтаксис Ruby (с подчеркиванием и вопросительными знаками в инспекторе), что может удивить разработчика Scala. Подъем не классический MVC-каркас, как Wicket, это Model-ModelView-View. Фактически Lift больше ориентирован на цикл запроса-ответа. Он предназначен для моделирования управляемых событиями графического интерфейса (например, Java Swing или .NET GUI). Это означает, что HTML-элементы и действия записываются в том же месте:
var inputName = ""
SHtml.text(inputName,s => inputName = s)
Этот код будет создан входной HTML тег, как это:
<input type="text" value=""/>
и подключить функцию переменной, так что вход сохраняется. Структура такая же, даже если AJAX используется вместо HTTP GET/POST.
Лифт является выразительным и мощным, но не очень простым.
Пожалуйста, исправьте меня, если это не точно!
Какое приложение вы собираетесь сделать? Какие функции вам нужны? Что бы вы хотели сделать, чтобы Wicket не поддерживал или не поддерживал легко? –
В конечном итоге веб-приложение станет очень сложным, но для его упрощения предположим, что веб-приложение будет иметь страницу, содержащую несколько полей поиска и таблицу, показывающую результаты поиска. Большинство других страниц, вероятно, также будут содержать формы. – Ceki