我正在将 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 is not defined”。
即使使用 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 中有两个 *.faces 映射。一个是CustomFilter(实现javax.servlet.Filter),另一个是CustomServlet(扩展org.apache.myfaces.webapp.MyFacesServlet)。