当我尝试调用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>
第二页:
<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截图
谢谢,
答案 0 :(得分: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"/>
答案 1 :(得分:2)
从包含组合中删除<h:head>
。它不属于那里,可能会破坏生成的HTML头。 <h:head>
只应在整个视图中声明一次,最好只在主模板中声明。
另一个可能的原因是你有Filter
恰好与资源请求的URL模式匹配,而这反过来又完全没有完成它的工作。检查HTML源代码生成了<script>
个元素并在Firebug / Chrome / IE9中按F12并浏览 Net (或网络)标签以查看哪些浏览器具有全部检索JS资源。
更新:对象名称为RichFaces
,大写为F
,而不是Richfaces
。修复它。