アプリケーションを EJB から JSF + Spring に移行しており、これを行って、RichFaces を 3.3.1 から 4.1.0 に更新しました。今、クロムのコンソールに表示される次の問題に苦労しています
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>
しかし、私が移行しているアプリケーションは、コードは同じで、コンソールにはエラーが表示されません