3

Webアプリケーションでいくつかの複合コンポーネントを定義しようとしています。私が読んだチュートリアルによると、xhtmlファイルをwebcontentにあるリソースフォルダー内に配置する必要があります。このソリューションは、これらのファイルをURLからパブリックアクセスできるようにするため、問題があります。このコンポーネントをweb-infフォルダー内に配置し、jsfにそこでファイルを検索させる方法はありますか?そうでない場合、直接アクセスを回避する別の方法はありますか?

ありがとう。

PS:私はこの答えを調べましたが、BalusCの答えを正しく理解していれば、私が意図していることは可能です。

4

1 に答える 1

4

「複合コンポーネント」は、見つけた質問/回答の「構成」とまったく同じではありません。OPは、コンテンツ<ui:include>を含むファイルのように、構成について明確に話していました。<ui:componsition>

に直接アクセスできないようにする必要があり/resourcesます。これは、次のセキュリティ制約エントリをに追加することで実現できますweb.xml

<security-constraint>
    <display-name>Restrict direct access to JSF resources</display-name>
    <web-resource-collection>
        <web-resource-name>JSF resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint /><!-- Empty auth constraint! -->
</security-constraint> 

今後のJSF2.2によると、次の構成エントリで/resourcesフォルダ全体を移動できるため、これはもう必要ありません。/WEB-INFweb.xml

<context-param>
    <param-name>javax.faces.WEBAPP_RESOURCES_DIRECTORY</param-name>
    <param-value>WEB-INF/resources</param-value> 
</context-param>
于 2012-12-13T15:09:05.323 に答える