我正在从 mojarra 1.2 升级到 myfaces 2。使用 t:dataScroller 标签会产生以下错误:
java.io.FileNotFoundException:/WEB-INF/javax.faces.resource/oamSubmit.xhtml 在 ExternalContext 中找不到作为资源
代码片段:
<t:dataScroller id="${name}" for="#{forTable}"
fastStep="10"
pageIndexVar="pageIndex"
paginator="true"
paginatorMaxPages="10"
pageCountVar="pageCountVar"
rowsCountVar="rowsCountVar"
firstRowIndexVar="firstRowIndexVar"
lastRowIndexVar="lastRowIndexVar"
rowIndexVar="rowIndexVar"
paginatorRenderLinkForActive="false"
>
为我的页面生成的 javascript 片段如下:
.. src="/app/javax.faces.resource/oamSubmit.js?ln=org.apache.myfaces"> ..
我猜沿着oamSubmit线的某个地方被返回为 facelet 标记而不是 javascript。我认为这可能是一个配置参数,但尚未找到正确的值。
Web.xml 片段:
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
面孔-config.xml
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
更新: 更多堆栈跟踪详细信息:
WEB-INF/javax.faces.resource/oamSubmit.xhtml 在 ExternalContext 中找不到作为资源 在 org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:227) 在 org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:170) 在 org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._getFacelet(FaceletViewDeclarationLanguage.java:2530) 在 org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:435) 在 org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77) 在 org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241) 在 org.springframework.faces.mvc.JsfView.renderMergedOutputModel(JsfView.java:85) 在 org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 在 org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 在 org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 在 org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
和 web.xml 中的调度程序 servlet 参数
<servlet>
<servlet-name>myApp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myApp</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
我想我需要告诉 Dispatcher 按原样提供静态内容,而不是 JSF。