2

我想在该代码中编写(pretty-config.xml):

<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">

 <!--- ??? --->

</pretty-config>

只需将我的所有页面都映射到“.jsf / .xhtml”。

/admin/listusers => /admin/listusers.jsf

谢谢

4

2 回答 2

4

PrettyFaces 对于各种重写场景都非常强大。

当它只涉及无扩展的 url 时,OmniFaces 是一个有趣的选择。您可以通过将您的页面放在一个特殊的目录中,或者在 web.xml 中进行一些配置来获得完全没有配置的无扩展 url:

<context-param>
    <param-name>org.omnifaces.FACES_VIEWS_SCAN_PATHS</param-name>
    <param-value>/*.xhtml</param-value>
</context-param>

有关更多信息,请参阅包文档

于 2013-03-14T17:19:22.307 回答
1

为此,您有几个选项我可以想到,除非您想使用传统的 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>

但这会变得复杂,因为您实际上需要两个规则,因此您也可以为此使用http://ocpsoft.org/rewrite/,并且事情会更简单且更具声明性:

ConfigurationBuilder.begin()
  .addRule(Join.path("/{p}").to("/{p.jsf}").where("p").matches("(?!*.jsf).*"));

传统的 PrettyFaces 方法是使用配置中的 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>

我希望这有帮助。

于 2012-05-08T06:03:02.517 回答