Вот сценарий.
Представление А — загружается путем ввода URL-адреса в браузере. Отправьте запрос на публикацию, нажав командную кнопку с простыми лицами (PF - 5.2), а затем перейдите к другому представлению View B.
Представление B — имеет событие preRenderView — при postBack=false, которое проверяет определенный параметр запроса и, если он присутствует, перенаправляет (не перенаправляет) в другое представление C, используя обработчик навигации.
View C - Problem is when this view loads up, Primefaces object (javascript object) is found as null, e.g. error as
"Uncaught TypeError: Cannot read property 'cw' of null"against this script
PrimeFaces.cw("CommandButton","widget_next3",{id:"next3",widgetVar:"widget_next3"});View C has components related to PF, so i guess PF js and css should get added automatically.I didn't added any PF js or css or jquery js manually, all getting included automatically through PF component ResourceDependency. But in this case neither PF css gets included nor js.
-- Все работает нормально в представлении C, если в представлении B - событие preRenderView переходит к представлению C с (перенаправлением) Faces-redirect=true.
В случае ошибки, если я проверяю через jquery - он дает объект PF как нулевой.
<h:outputScript>
$( document ).ready(function() {
console.log( "ready!" );
console.log( "Windows PrimeFaces=" + (window.PrimeFaces) );
console.log( "PrimeFaces=" + (PrimeFaces) );
});
</h:outputScript>
Но мне интересно, почему проблема только с PF (js и css), почему объект JQuery "$" работает нормально - потому что вышеуказанная функция работает нормально.
Также в сценарии ошибки, если я явно включу следующее, тогда все в порядке
<h:outputScript name="primefaces.js" library="primefaces"/>
<h:outputStylesheet name="primefaces.css" library="primefaces" />
<h:outputStylesheet name="theme.css" library="primefaces-aristo" />
Спасибо, что посмотрели.