Ошибка при использовании t:dataScroller с MyFaces 2.1.5 Tomahawk 1.1.11 Spring 3.0.5

Я нахожусь в процессе обновления с 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 Not Found in ExternalContext as a Resource
    at org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.resolveURL(DefaultFaceletFactory.java:227)
    at org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getFacelet(DefaultFaceletFactory.java:170)
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._getFacelet(FaceletViewDeclarationLanguage.java:2530)
    at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:435)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:77)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    at org.springframework.faces.mvc.JsfView.renderMergedOutputModel(JsfView.java:85)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    at 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>

Я думаю, мне нужно сказать Dispatcher, чтобы он обслуживал статический контент как есть, а не JSF.


person kzt    schedule 17.01.2012    source источник
comment
Это настоящее сообщение об ошибке и сгенерированный код? Я вижу противоречия в сообщении об ошибке, опубликованном коде и шаблоне URL. Пожалуйста, проверьте и удалите отвлекающие факторы.   -  person BalusC    schedule 18.01.2012


Ответы (2)


Я установил для параметров контекста значение true в своем файле web.xml.

RENDERED_JSF_JS
RENDERED_MYFACES_JS
RENDER_FORM_SUBMIT_SCRIPT_INLINE

Казалось, это помогло. Конечно, у меня есть и другие проблемы, но я думаю, что они не связаны друг с другом.

person kzt    schedule 23.01.2012

Я могу подтвердить, что использование RENDER_FORM_SUBMIT_SCRIPT_INLINE — это обходной путь к отсутствующей функции javascript «oamSubmitForm», включенной во внешний файл где-то в заголовке в моем случае. Следующая ссылка может помочь найти настоящую проблему: http://jacekbilski.blogspot.de/2009/07/включая-javascript-in-html-content.html

  <context-param>
    <param-name>org.apache.myfaces.RENDER_FORM_SUBMIT_SCRIPT_INLINE</param-name>
    <param-value>true</param-value>
  </context-param>
person Florian Sager    schedule 08.02.2013