Сначала убедитесь, что вы объявили библиотеку тегов PrimeFaces в своем пространстве имен XML. Для текущей версии PrimeFaces 2.x, то есть
xmlns:p="http://primefaces.prime.com.tr/ui"
Во-вторых, PrimeFaces поставляется с большим количеством ресурсов CSS / JS, которые должны автоматически включаться <h:head>
. Компонент календаря (и многие другие) разрабатывается и активируется именно этими ресурсами. Таким образом, чтобы автоматически включить их, вам нужно убедиться, что в вашем основном шаблоне <h:head>
вместо <head>
. И чтобы быть последовательным, замените <body>
на <h:body>
.
Обновление На основании комментариев произошел конфликт JavaScript. <p:calendar>
прекрасно работает в своей простейшей форме. Он перестал работать, потому что в вашем шаблоне есть строка меню jQuery, которая, в свою очередь, потребует <script src="jquery.js">
. Поскольку PrimeFaces уже поставляется в комплекте с jQuery, он, скорее всего, вступил в конфликт с ручным скриптом включения jQuery. Вам нужно избавиться от включенного вручную скрипта jQuery.