2012-05-01 5 views
5

Когда я пытаюсь вызвать Richfaces.showModalPanel ('id'), я получаю, что Richfaces не определена javascript error и ничего не происходит.Richfaces не определен javascript error

В моем примере приложения у меня есть две страницы, одна из них - это главный вид, а другая страница - дочерний. Вид Child вызывает popupPanel в главном режиме, используя вышеуказанный вызов. Я не уверен, что не так. Любые указатели будут оценены.

Вот страницы у меня есть:

Первая страница:

<!DOCTYPE html> 
<html lang="en" 
     xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:f="http://java.sun.com/jsf/core" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:rich="http://richfaces.org/rich" 
     xmlns:c="http://java.sun.com/jsp/jstl/core" 
     xmlns:richext="http://java.sun.com/jsf/composite/richext"> 
    <h:head> 
     <title>Page Title</title> 

    </h:head> 
    <h:body> 

    <ui:include id="nextPageInclude" src="secondpage.xhtml"/> 
    <rich:popupPanel id="logoutDialogId" 
       width="300" 
       height="50" 
       autosized="true" 
       resizeable="false" 
       moveable="true" 
       modal="true" 
       style="border:5px solid #5e81ac; background-color:#dce3ed;"> 

     <h:outputText value="Inside logout window"/> 
    </rich:popupPanel> 

    </h:body> 
</html> 

Вторая страница:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:ui="http://java.sun.com/jsf/facelets" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:a4j="http://richfaces.org/a4j" 
    xmlns:rich="http://richfaces.org/rich"> 
    <h:head/> 
    <a4j:outputPanel id='headerLinks' layout="block"> 
     <ul id="sddm"> 
      <li> 
      </li> 
      <li> 
      </li> 
      <li> 
       <a4j:commandLink id="logoutLinkId" 
           value="Logout" 
           onclick="Richfaces.showPopupPanel('logoutDialogId')" 
           styleClass="linkLogout"/></li> 

     </ul> 
     <div style="clear:both"></div> 
    </a4j:outputPanel> 
</ui:composition> 

EDIT: Прикрепленный загружен скриншот JS

enter image description here

Спасибо,

ответ

2

Удалите <h:head> из включаемого композиции. Он не принадлежит и может повредить созданную HTML-головку. <h:head> должен быть объявлен только один раз во всем представлении и предпочтительно только в шаблоне мастера.

Еще одна возможная причина заключается в том, что у вас есть Filter, который также соответствует шаблону URL-адресов запросов ресурсов, который, в свою очередь, не выполняет свою работу совершенно правильно. Проверьте источник HTML, который генерирует все элементы <script>, и нажмите F12 в Firebug/Chrome/IE9 и просмотрите закладку Net (или Network), чтобы узнать, какой браузер был извлечен для ресурсов JS.


Update: имя объекта RichFaces с прописными буквами F, не Richfaces. Исправьте его.

+0

Привет BalusC, Сначала я стараюсь без головы в составе, это не сработало. Затем я добавил h: голова там, еще одна проблема. Я думаю, что-то еще происходит. – kosa

+0

Я обновил ответ с другой возможной причиной. – BalusC

+0

Hi BalusC, прилагается скриншот загруженного JS. Он содержит jsf.js.xhtml. – kosa

8

Проблема с кодом выше, что, поскольку RichFaces 4.0 мы не можем сделать старые вызовы, чтобы открыть в popupPanel, как вы написали это устаревшее, попробуйте это, если вы можете вместо этого: -

<a4j:commandLink id="logoutLinkId" 
    value="Logout" 
    onclick="#{rich:component('logoutDialogId')}.show();" 
    styleClass="linkLogout"/> 

И точно так же, чтобы скрыть popupPanel использовать

<a4j:commandLink id="Close_Modal" 
    value="Close Logout" 
    onclick="#{rich:component('logoutDialogId')}.hide();" 
    styleClass="linkLogout"/> 
+0

Вы правы. Я это сделал. Благодарю. – kosa

+1

Ваш прием :) Мой первый вклад в мир на stackOverflow – saNiks

+1

Добро пожаловать в SO. Продолжайте вкладывать свои знания. Дайте +1. Кстати, вы можете увидеть много вопросов, связанных с Richfaces4 от меня (мы в процессе обновления с 3.x до 4.2) – kosa

Смежные вопросы