2009-04-25 6 views
4

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

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

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

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

EDIT: Это часть теста я даю двигателю Google приложений - так что, вероятно, имеет смысл для меня, чтобы изучить Google Web Toolkit, - любые указатели в том, что стороны будут оценены, а также.

Любая помощь оценена!

ответ

4

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

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

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

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

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

+0

спасибо за полезный обзор :) – JohnIdol

1

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

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

Смежные вопросы