0

mojarra 1.2 から myfaces 2 にアップグレード中です。t:dataScroller タグを使用すると、次のエラーが発生します。

java.io.FileNotFoundException: /WEB-INF/javax.faces.resource/oamSubmit.xhtml Not Found in ExternalContext as a Resource

コードスニペット:

<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が javascript ではなく facelet タグとして返されていると思います。構成パラメーターである可能性があると思いましたが、まだ正しい値を見つけていません。

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-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>

JSF ではなく、静的コンテンツをそのまま提供するよう Dispatcher に指示する必要があると思います。

4

2 に答える 2

0

web.xml でコンテキスト パラメータを true に設定しました。

RENDERED_JSF_JS
RENDERED_MYFACES_JS
RENDER_FORM_SUBMIT_SCRIPT_INLINE

それはトリックを行うように見えました。もちろん他にも問題はありますが、関係ないと思います。

于 2012-01-23T14:33:29.037 に答える
0

私の場合、RENDER_FORM_SUBMIT_SCRIPT_INLINE を使用することは、ヘッダーのどこかにある外部ファイルに含まれる不足している JavaScript 関数「oamSubmitForm」の回避策です。次のリンクは、実際の問題を見つけるのに役立つ場合があります。

  <context-param>
    <param-name>org.apache.myfaces.RENDER_FORM_SUBMIT_SCRIPT_INLINE</param-name>
    <param-value>true</param-value>
  </context-param>
于 2013-02-08T11:12:45.090 に答える