Richfaces没有定义javascript错误

kos*_*osa 5 richfaces facelets jsf-2

当我尝试调用Richfaces.showModalPanel('id')时,我得到的Richfaces没有定义javascript错误,也没有发生任何事情.

在我的示例应用程序中,我有两个页面,一个是主视图,另一个页面是子视图.子视图使用上面的调用在主视图中调用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>
Run Code Online (Sandbox Code Playgroud)

第二页:

<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>
Run Code Online (Sandbox Code Playgroud)

编辑:附加加载JS截图

在此输入图像描述

谢谢,

saN*_*iks 8

上面代码的问题是,由于RichFaces 4.0我们不能打开旧的调用来打开一个popupPanel,你编写它的方式已经过时了,如果你可以改为尝试这个: -

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

并且类似于隐藏popupPanel使用

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

  • 如果我能找到问题,我会全力以赴,我将分享答案:) (2认同)

Bal*_*usC 2

<h:head>从包含组合中删除。它不属于那里,并且可能会损坏生成的 HTML 头。<h:head>在整个视图中应该只声明一次,最好只在主模板中声明一次。

另一个可能的原因是您有一个Filter恰好与资源请求的 URL 模式匹配的文件,而该文件又不能完全正确地完成其工作。<script>检查生成了哪些元素的 HTML 源,然后在 Firebug/Chrome/IE9 中按 F12,然后浏览Net(或Network)选项卡以查看哪些浏览器已检索到所有 JS 资源。


更新:对象名称是RichFaces大写的F,不是Richfaces。也修好它。