Как создать пользовательские веб-элементы управления Java?

Этот вопрос возник в моей голове как «Могу ли я использовать элементы управления AWT в сервлете?», который продемонстрирует все мое невежество по этому поводу.

Я новичок в технологиях JAVA, но после небольшого чтения я, кажется, понимаю, что элементы управления AWT напрямую подключают элементы графического интерфейса ОС, поэтому нет возможности использовать или расширять JPanels, JButtons и т. Д. В сервлете, который будет вставлен в JSP и позволить браузеру отображать эти элементы управления (альтернативой, вероятно, может быть встраивание апплета в JSP, но я не хочу этого делать).

Я ищу способ создания настраиваемых повторно используемых веб-элементов управления с использованием JSP и сервлетов.

Как это обычно делается и можете ли вы предоставить образцы / ссылки?

РЕДАКТИРОВАТЬ: Это часть тестового прогона, который я даю движку Google Application Engine, поэтому мне, вероятно, имеет смысл изучить Google Web Toolkit - любые указатели в этих направлениях также будут оценены .

Любая помощь приветствуется!


person JohnIdol    schedule 25.04.2009    source источник


Ответы (2)


AWT зависит от ОС Рендеринг пользовательского интерфейса на рабочем столе, а не на веб-стороне вещей, в которых живут JSP, сервлеты и т. Д. Более конкретно, такие вещи, как Swing (в котором есть эти панели JPanel, JButtons и т.д., которые вы упомянули как компоненты пользовательского интерфейса) и SWT в настоящее время основаны на AWT и работают поверх он предназначен для рендеринга пользовательского интерфейса и позволяет ему работать должным образом.

К сожалению, все это означает, что вы не можете использовать компоненты на основе AWT на веб-страницах, поскольку, ну, веб-страницы (обычно) не зависят от платформы в том смысле, что они не могут точно решить, как будут отображаться части пользовательского интерфейса, есть просто куча разметки, которая рассматривается как своего рода призыв к веб-браузеру делать то, на что надеется веб-дизайнер, без стопроцентной гарантии того, что конечный результат будет тем, что хотел дизайнер.

Было много изобретений колеса для создания пользовательского интерфейса типа Swing / AWT на веб-стороне Java, поскольку это умная модель, как вы, кажется, уже знаете Google Web Toolkit пытается внести свой вклад в то, чтобы Web казался больше похожим на настольное приложение, хотя на самом деле он просто автоматизирует необходимый JavaScript Ajax внизу, чтобы сделать веб-страницу вести себя так, как если бы это было настольное приложение. Еще одна структура для этого - Tapestry, которую я лично не использовал, но некоторые думают, что это тоже достойный выбор.

И, конечно же, мой личный любимый Apache Wicket, который позволяет вам полностью разделить код Java и разметку. и он ведет себя очень похоже на код пользовательского интерфейса Swing! На самом деле существует множество конфликтов имен с классами компонентов пользовательского интерфейса Swing для самых простых вещей. Предполагая, что вы знакомы с кодированием пользовательского интерфейса настольного приложения, я настоятельно рекомендую Wicket, он абстрагируется от скучных и утомительных частей (сервлеты, разрешение URL-адресов, возможность закладки страниц, безопасность ...) и заменяет их моделью, управляемой событиями, аналогичной ( но не равно) EDT Swing, где волшебство пользовательского интерфейса рабочего стола обычно случается.

Хотя это полностью уходит от того, что вы ищете, с помощью Wicket вы можете создать такой набор веб-компонентов POJO, которые можно будет повторно использовать где угодно и, таким образом, получить то, что вы просили. Небольшое предупреждение: Wicket предполагает, что вы действительно знаете, как кодировать на Java, и некоторые до смешного простые вещи могут быть сначала утомительными, но в конце концов вы должны быть вполне довольны тем, что у вас есть.

person Esko    schedule 25.04.2009

В JSP вы, вероятно, ищете настраиваемые теги. Пользовательские теги - это способы создания повторно используемых компонентов кода, которые будут использоваться при отображении страниц JSP. Есть несколько очень хороших, таких как те, что находятся в инфраструктуре struts2. или библиотеку отображаемых тегов.

Но вы можете написать свои собственные или расширить существующие, добавив новые функции.

person Vincent Ramdhanie    schedule 25.04.2009