このために、従来の PrettyFaces マッピングを使用してアプリケーション内のすべての URL をマップしたい場合を除き、私が頭の中で考えることができるいくつかのオプションがあります...
次のようなものを使用して、PrettyFaces ルールを使用できます。
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.2
http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.2.xsd">
<rewrite match="(?!.*.jsf.*)(.*)" substitute="$1.jsf" outbound="false" inbound="true"/>
<rewrite match="(.*).jsf" substitute="$1" inbound="false" outbound="true" />
</pretty-config>
しかし、実際には 2 つのルールが必要なため、これは複雑になります。そのため、これにもhttp://ocpsoft.org/rewrite/を使用できます。物事は少し単純で宣言的になります。
ConfigurationBuilder.begin()
.addRule(Join.path("/{p}").to("/{p.jsf}").where("p").matches("(?!*.jsf).*"));
従来の PrettyFaces のアプローチでは、config で url-mapping 宣言を使用して URL を各ページにマップします。
<pretty-config xmlns="http://ocpsoft.com/prettyfaces/3.3.2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ocpsoft.com/prettyfaces/3.3.2
http://ocpsoft.com/xml/ns/prettyfaces/ocpsoft-pretty-faces-3.3.2.xsd">
<url-mapping id="listUsers">
<pattern value="/admin/listusers"/>
<view-id value="/admin/listusers.jsf" />
</url-mapping>
<url-mapping id="login">
<pattern value="/login"/>
<view-id value="/login.jsf" />
</url-mapping>
</pretty-config>
これが役立つことを願っています。