Когда следует использовать компоненты JSF и когда следует использовать теги html?

Я хотел бы создать веб-страницу с использованием JSF.

Некоторые части страницы, которые я могу разместить с помощью <h:panelGroup> и <h:panelGrid>, или вместо этого, я могу использовать <p>, <div> и т.д. вместо.

Просто интересно, что предпочтительнее для лучших практик.

Спасибо!

Ответ 1

Если вам не нужны функции, предоставляемые тегом JSF, я бы предпочел использовать простой HTML.

Например, <h:panelGroup> имеет атрибут rendered, который позволяет привязываться к резервной переменной bean boolean для условного отображения вывода, но с <div> или <span> вы не можете этого сделать.

<h:panelGroup> по умолчанию будет генерировать a <span>. Если вы предпочитаете <div>, вы можете использовать <h:panelGroup layout="block">. Он будет генерировать <div> для вас.

Ответ 2

Недавний случай из моей практики:

1. для <p> и <div> вы не можете использовать атрибут rendered

2. сделать ваш код более структурным и надежным - легко читаемым для других пользователей вашего кода

Ответ 3

Существует рекомендация не смешивать jsf с html. Справочная информация. Затем ваша страница jsf может отображаться как нечто иное, чем html. Но насколько я знаю до сих пор, для html есть только рендереры (хотя вы можете написать свои собственные).

На практике мне было трудно следовать этой рекомендации и закончил смешивание html и jsf, например. для заголовков или разрывов строк Я использую html.

Ответ 4

В качестве общего правила я использую теги HTML и Facelets в макетах. Но для реальных страниц контента я стараюсь использовать теги JSF, доступные только с выбранной мной библиотекой JSF (JSF + RichFaces).

Таким образом, я могу больше контролировать, какие элементы отображаться и скрываться, а также содержимое внутри каждого элемента, но я все же могу жестко программировать свой макет главной страницы в файле шаблона facelets.