2012-05-01 42 views
5

Khi tôi cố gắng gọi Richfaces.showModalPanel ('id') Tôi nhận được Richfaces không được xác định lỗi javascript và không có gì xảy ra.Richfaces không được xác định lỗi javascript

Trong ứng dụng mẫu của tôi, tôi có hai trang, một trang là chế độ xem chính và một trang khác là chế độ xem con. Chế độ xem con gọi popupPanel trong chế độ xem chính bằng cách sử dụng cuộc gọi ở trên. Tôi không chắc chắn những gì là sai. Bất kỳ con trỏ sẽ được đánh giá cao.

Dưới đây là các trang tôi có:

trang đầu tiên:

<!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> 

trang thứ hai:

<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: đính kèm được tải ảnh chụp màn hình JS

enter image description here

Cảm ơn bạn,

Trả lời

2

Tháo <h:head> từ bao gồm cơ cấu. Nó không thuộc về đó và có thể sẽ làm hỏng đầu HTML được tạo ra. <h:head> chỉ được khai báo một lần trong suốt chế độ xem và tốt nhất là chỉ trong mẫu chính.

Một nguyên nhân khác có thể là bạn đã Filter điều này xảy ra để khớp với mẫu URL của yêu cầu tài nguyên cũng như lần lượt không hoàn thành công việc của mình. Kiểm tra nguồn HTML có tất cả các thành phần được tạo ra và nhấn F12 trong Firebug/Chrome/IE9 và khám phá tab Net (hoặc Mạng) để xem tất cả các trình duyệt đều đã truy xuất được vào tài nguyên JS.


Cập nhật: tên đối tượng là RichFaces với hoa F, không Richfaces. Sửa chữa nó là tốt.

+0

Hi BalusC, Ban đầu tôi đã cố gắng mà không cần đầu về thành phần, nó đã không làm việc. Sau đó, tôi thêm h: đầu ở đó, vẫn còn vấn đề tương tự. Tôi nghĩ cái gì đó khác đang diễn ra. – kosa

+0

Tôi đã cập nhật câu trả lời với một nguyên nhân có thể khác. – BalusC

+0

Hi BalusC, Ảnh chụp màn hình đính kèm của JS đã tải. Nó chứa jsf.js.xhtml. – kosa

8

Vấn đề với đoạn code trên là vì RichFaces 4.0 chúng ta không thể thực hiện các cuộc gọi cũ để mở một popupPanel, cách bạn đã viết nó là lỗi thời, hãy thử điều này nếu bạn có thể thay vì: -

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

Và tương tự để ẩn popupPanel sử dụng

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

Bạn đã đúng. Tôi đã làm điều đó. Cảm ơn. – kosa

+1

Chào mừng bạn :) Đóng góp đầu tiên của tôi cho thế giới trên stackOverflow – saNiks

+1

Chào mừng bạn đến với SO. Tiếp tục đóng góp kiến ​​thức của bạn. Đã +1. Bằng cách này bạn có thể thấy rất nhiều câu hỏi liên quan đến Richfaces4 từ tôi (Chúng tôi đang trong quá trình nâng cấp từ 3.x lên 4.2) – kosa

Các vấn đề liên quan