2

を設定するFacesServletと、ファセットweb.xmlはどこで検索され*.xhtmlますか?App-Rootのみ?

4

3 に答える 3

1

あなたの質問がわかりません。しかし、答えてみてください。xhtml拡張子を持つWebディレクトリ(およびサブディレクトリ)内のすべてのファイルは、フェイスレットとして処理されます。

于 2012-11-22T08:48:52.883 に答える
1

これらはデフォルトで、WARのWebルートフォルダと、WARに/META-INF/resources含まれるすべてのJARのフォルダでスキャンされます/WEB-INF/lib。このスキャンアルゴリズムは、カスタムで制御できますResourceResolver。これは(比較的ばかげた)例で、WAR(またはその中のJAR /WEB-INF/lib)に何も見つからない場合にも、ローカルディスクファイルシステム上の追加の場所をスキャンします。

public class MyResourceResolver extends ResourceResolver {

    private ResourceResolver parent;

    public MyResourceResolver(ResourceResolver parent) {
        this.parent = parent;
    }

    @Override
    public URL resolveUrl(String path) {
        URL url = parent.resolveUrl(path); // Resolves from WAR.

        if (url == null) {
            url = new File("/some/folder", path).toURI().toURL();
        }

        return url;
    }

}

Faceletsファイルをフォルダに配置する場合は、テンプレートファイル、タグファイル、インクルードファイルなど、一般にアクセスできないはず/WEB-INFのFaceletsファイルのみを配置する必要があります。一般にアクセスできるはずのファイルは配置しないでください。テンプレートクライアント(トップレベルビュー)などがあります。

参照:

于 2012-11-22T11:39:37.280 に答える
0

これは、web.xmlのこれらのパラメーターに依存します。

<context-param>
    <param-name>javax.faces.DEFAULT_SUFFIX</param-name>
    <param-value>.xhtml</param-value>
</context-param>

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jspx</url-pattern>
</servlet-mapping>
于 2012-11-22T08:54:16.640 に答える