Вы явно используете PrimeFaces 2.0 на JSF 2.0. p:resources
является устаревшим в JSF 2.0. Вы должны использовать Facelets вместо JSP. Если что-то пошло не так, вы должны были увидеть следующую запись в журналах сервера:
INFO: p:resources component is deprecated and has no use in PrimeFaces 2.0 as
JSF 2.0 resource apis are used instead to place resources on page.
Поскольку ресурсы не включены в страницу, необходимые файлы JavaScript не включены, и сгенерированный код JavaScript не может найти ссылку на библиотеку Yahoo, поэтому вы получили ошибку JS. Если вы щелкнули правой кнопкой мыши веб-страницу в браузере и проверили сгенерированный исходный код HTML, вы должны были заметить также отсутствие <script>
include.
Чтобы это исправить, dump JSP навсегда и используйте Facelets. Он является преемником JSP и намного лучше, когда снимает JSF.
Переименуйте файл *.jsp
в *.xhtml
и используйте следующий код:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.prime.com.tr/ui">
<h:head>
<title>My Facelets 'index.xhtml' starting page</title>
<base href="//#{request.serverName}:#{request.serverPort}#{request.contextPath}"></base>
</h:head>
<h:body>
<h:form>
<h:outputText id="txt_count" value="#{counterBean.count}" />
<p:poll actionListener="#{counterBean.increment}" update="txt_count" />
</h:form>
</h:body>
</html>
При чтении книг / учебников JSF убедитесь, что вы читаете книги, охватывающие JSF 2.0, а не 1.x.