5

Richfaces.showModalPanel('id')を呼び出そうとすると、Richfacesが定義されていないjavascriptエラーが発生し、何も起こりません。

サンプルアプリケーションには2つのページがあり、1つはマスタービューで、もう1つは子ビューです。子ビューは、上記の呼び出しを使用してマスタービューで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>

2ページ目:

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

編集:添付のロードされたJSスクリーンショット

ここに画像の説明を入力してください

ありがとうございました、

4

2 に答える 2

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"/>
于 2012-05-02T18:57:06.223 に答える
2

<h:head>インクルードコンポジションからを削除します。そこには属していないため、生成されたHTMLヘッドが破損する可能性があります。は<h:head>、ビュー全体で1回だけ宣言する必要があり、できればマスターテンプレートでのみ宣言する必要があります。

もう1つの考えられる原因はFilter、リソースリクエストのURLパターンにも一致しているため、完全に正しく機能していないことです。<script>どの要素がすべて生成されているかをHTMLソースで確認し、Firebug / Chrome / IE9でF12キーを押し、[ネット(またはネットワーク)]タブを調べて、JSリソースに関してすべて取得したブラウザーを確認します。


更新:オブジェクト名はRichFaces大文字Fであり、ではありませんRichfaces。それも修正してください。

于 2012-05-01T20:30:42.817 に答える