【发布时间】:2013-05-27 14:11:24
【问题描述】:
我一直在将应用程序从 EJB 迁移到 JSF + Spring,并为此将 RichFaces 从 3.3.1 更新到 4.1.0。 现在我正在努力解决以下问题,chrome 中的控制台显示
Uncaught ReferenceError: jQuery is not defined
在 RichFaces-event.js、popupPanel.js 等 RichFaces 脚本中。
我知道在 html 文件的标题中,应该首先包含 jQuery 文件,但是我已经查看了以前的应用程序,并且在 jQuery 之前也包含了这个脚本,并且没有出现错误。更重要的是,我现在不知道如何更改它,因为这些脚本是通过以下方式隐式添加的:
<html 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">
我该如何解决这个问题?
<f:view contentType="text/html" locale="#{localeSelector.language}">
<h:head>
<title>#{messages['news.title']}</title>
<link rel="stylesheet" type="text/css" href="css/styles.css" />
<link rel="stylesheet" type="text/css"
href="css/jquery.lightbox-0.5.css" media="screen" />
<script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script>
</h:head>
<h:body>
<h:outputScript name="jquery.js" library="js" target="head" />
<div id="container">
</div>
</h:body>
</f:view>
</html>
这里的问题不是灯箱而是RichFaces。生成的html代码是:
<script type="text/javascript" src="/ESA/javax.faces.resource/richfaces-event.js.xhtml"> </script>
<script type="text/javascript" src="/ESA/javax.faces.resource/popupPanel.js.xhtmlln=org.richfaces"></script>
<script type="text/javascript" src="/ESA/javax.faces.resource/popupPanelBorders.js.xhtml?ln=org.richfaces"></script>
<script type="text/javascript" src="/ESA/javax.faces.resource/popupPanelSizer.js.xhtml?ln=org.richfaces"></script>
<script type="text/javascript" src="/ESA/javax.faces.resource/jquery.js.xhtml?ln=js"> </script>
<script type="text/javascript" src="/ESA/javax.faces.resource/jquery.lightbox-0.5.js.xhtml?ln=js"></script>
但是我要迁移的应用程序,代码是一样的,控制台没有显示任何错误
【问题讨论】:
-
您可以显示文件的其余部分吗?你直接导入jQuery吗?你用
<h:head>吗?您是否从/lib文件夹中删除了以前的库? -
已添加代码。如您所见,我使用了
<h:head>标签,但它仍然无法正常工作。/lib文件夹已被清除,并且没有以前的库出现在那里。