JSF1.2 アプリケーションを JSF 2.1 に移行しています。Faceletsテンプレートを使用するログインページがあります。また、テンプレート ページには h:head タグがあります。ログインページには、ui:composition/ui:define/h:form/a4j:outputPanel/h:panelGrid/h:panelGroup タグ内にタグ h:selectBooleanCheckbox があります。
<h:selectBooleanCheckbox value="#{bean.alogin}" >
<a4j:ajax event="click" execute="@form" render="loginPanel" />
</h:selectBooleanCheckbox>
チェック ボックスをクリックすると、ブラウザ エラー コンソールに「ReferenceError: RichFaces が定義されていません」というメッセージが表示されます。
f:ajax タグを使用しても問題は同じで、
<h:outputScript name="jsf.js" library="javax.faces" target="head"/>
テンプレートページ/ログインページ。
この問題 (js ライブラリが見つからない/読み込まれない) は、ログイン ページの最初の読み込みでのみ発生します。つまり、アプリケーションにログインしてログアウトし、上記のチェック ボックスを使用しても問題はありません。
ポインタを指示してください。それは非常に役立ちます。よろしくお願いします。
そして、head タグで生成された html は次のとおりです。
<script src="/myapp/javax.faces.resource/jsf.js.faces?ln=javax.faces" type="text/javascript"><!--
//--></script>
web.xml に 2 つの *.faces マッピングがあります。1 つは CustomFilter (javax.servlet.Filter を実装) で、もう 1 つは CustomServlet (org.apache.myfaces.webapp.MyFacesServlet を拡張) です。