В чем разница междуи <head>в Java Facelets? - PullRequest
10 голосов
/ 17 мая 2011

См. это .

Когда и зачем использовать <h:head> вместо <head>?

Я видел, что Primefaces не будет работать с <head>.

Ответы [ 2 ]

22 голосов
/ 18 мая 2011

<h:head> - это компонент JSF, который обеспечивает возможность программного включения ресурсов JavaScript и CSS в сгенерированный HTML <head>. PrimeFaces использует его для включения необходимого JS / CSS-кода для работ Ajax и модного look'n'feel.

В качестве теста создайте страницу с компонентами <h:head> и PrimeFaces, откройте страницу в веб-браузере и проверьте созданный источник HTML, щелкнув правой кнопкой мыши - Просмотр источника . Вы увидите, что было добавлено несколько JSF и CSS-файлов, специфичных для JSF и PrimeFaces. Теперь замените <h:head> на <head> и еще раз проверьте созданный источник HTML, на этот раз вы ничего не увидите.

13 голосов
/ 18 мая 2011
  • Тег <head> является HTML тегом , который определяет заголовок страницы HTML (здесь вы определяете метаданные или включаете ресурсы, такие как JavaScript или CSS например).
  • <h:head> - это тег JSF (представлен в JSF 2.0), который обрабатывает часть <head> вашей страницы. Интерес к наличию такого тега JSF состоит в том, что этот заголовок становится частью дерева компонентов JSF, и, таким образом, вы можете манипулировать им в своем коде Java.

Что касается несовместимости <head> с Primefaces, я не понимаю, почему это происходит. Facelets представили в JSF 1.x возможность смешивать код HTML и код JSF (XHTML), и у вас не должно возникнуть никаких проблем при вставке тега HTML <head> на страницу, даже если вы используете Primefaces. Facelets изначально интегрирован с JSF 2.x.

...