В чем разница между пользовательским интерфейсом facelets: include и пользовательским тегом? - PullRequest
0 голосов
/ 12 марта 2011

Ui: теги include и xhtml (те, что с исходным кодом elt) кажутся мне практически одинаковыми. Оба позволяют повторно использовать часть разметки. Но я считаю, что должна быть причина иметь каждого. Может ли кто-нибудь кратко объяснить это? (Полагаю, что если я прочитаю полное руководство по Facelets, я его изучу, но у меня нет времени, чтобы делать это сейчас, поэтому, пожалуйста, никаких ссылок на длинные документы:)

1 Ответ

3 голосов
/ 12 марта 2011

Они очень похожи.Разница в основном синтаксическая.

После наблюдения за их использованием в течение некоторого времени кажется, что соглашение заключается в том, что фрагменты, которые вы используете только в одной ситуации, являются кандидатами для пользовательского интерфейса: include, тогда как фрагменты, которые вы используете повторно чащеи имеют более независимую семантику - кандидаты на пользовательский тег.

Например,

Одиночное представление может иметь форму с тремя разделами;личные данные, история работы, предпочтения.Если страница становится громоздкой, вы можете разделить ее на более мелкие части.Каждый из 3 разделов может быть перемещен в свой собственный файл Facelet, а затем будет добавлен в исходный файл с помощью пользовательского интерфейса.

С другой стороны, у вас может быть определенный способ отображения на изображении на многихпросмотров в вашем приложении.Может быть, вы рисуете линию вокруг него, располагаете текст под ним и т. Д. Вместо того, чтобы повторять это снова и снова, вы можете снова абстрагировать это в свой собственный файл Facelet.Несмотря на то, что вы можете включить его, большинство людей предпочитают создавать теги здесь, поэтому вы можете использовать, например, <my:image src="..." /> на своих Facelets.Это выглядит лучше (более компактно, более встроено в другие компоненты).

В версии Facelets, поставляемой в комплекте с JSF 2.0, простые теги можно заменить на composite components.Это еще один третий вариант, который на первый взгляд выглядит как пользовательские теги, но эти вещи технически отличаются, поскольку они не просто включают, но представляют истинные компоненты с объявленными атрибутами, способностью присоединять валидаторы и т. Д.

...