0

RichFaces と OpenFaces をツリー テーブルに組み込もうとすると、展開折りたたみボタンが表示されません。一部の js が読み込まれていないことが判明しました。これが原因である可能性があります。

JSF コードは次のとおりです。

<o:treeTable var="o">
                        <o:dynamicTreeStructure nodeChildren="#{bean.originNodeChildren}"
                                                nodeHasChildren="#{bean.originHasChildren()}"/>
                        <o:treeColumn expandedToggleImageUrl="/img/toggle-expand-light.png"
                                      collapsedToggleImageUrl="img/toggle-collapse-light.png">
                            <h:outputText value="#{o.description}"/>
                        </o:treeColumn>
                    </o:treeTable>

Bean コードが正しくトリガーされている (hasChildren メソッドを含む)。

JS の例外:

Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/util/ajaxUtil-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/util/util-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/tableUtil-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/table/table-2.1.EA1.1143.js)
Failed to load resource: the server responded with a status of 404 (/openFacesResources/META-INF/resources/openfaces/table/treeTable-2.1.EA1.1143.js)

OpenFaces バージョン 2.0 および RichFaces バージョン 3.3.3を使用します。

4

2 に答える 2

1

web.xml でオープン フェースのリソース フィルタを構成する必要があり、ジョブは完了です。何かのようなもの:

public class OpenFacesResourceFilter extends ResourceFilter {
    // -- Fields --

    // -- Methods --
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        try{
            super.doFilter(servletRequest, servletResponse, filterChain);
        } catch (ServletException e) {
            Throwable parent = e.getCause();
            if(parent!=null && parent instanceof ServletException) {
                throw (ServletException) parent;
            } else {
                throw e;
            }
        }
    }
}
于 2012-01-05T14:02:05.793 に答える
0

これは、実際にアプリケーションの xml ファイルで OpenFaces リソース フィルターを宣言していないようです。以下は、フィルターを宣言する方法に関するドキュメントからの抜粋です (このフィルター用の Java クラスを自分で作成する必要はありません)。

  <!-- FILTER FOR PROCESSING INTERNAL OPENFACES RESOURCES -->
  <filter>
    <filter-name>ResourceFilter</filter-name>
    <filter-class>org.openfaces.util.ResourceFilter</filter-class>
  </filter>

  <!-- MAPPING FOR OPENFACES RESOURCE FILTER -->
  <filter-mapping>
    <filter-name>ResourceFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

OpenFaces 2.0 ドキュメントの「インストール」セクションと「リソース フィルターの最適化」セクションを参照してください。

于 2012-01-13T12:26:33.047 に答える