如何让Prettyfaces在to-view-id
内的faces-config.xml
内创建无扩展名网址,以便它不会将.xhtml
附加到其末尾?
例如在定义导航案例时,我将to-view-id
定义为/topics/54233
,但faces-config将我重定向到/topics/54233.xhtml
,我肯定想要阻止它。我该怎么做?
我知道存在Prettyfaces导航技术,但我无法使用Prettyfaces进行导航(因为它不允许根据不同的from-view-id(s)为结果创建不同的导航案例由faces-config.xml提供)所以我宁愿用faces-config.xml
来保持这份工作答案 0 :(得分:2)
首先,由于面部导航系统的架构,您无法在faces-config.xml
中使用“prettyfaces URL”。 (当face-config.xml被处理用于导航时,所有其他扩展都放弃了行动的机会。)
这意味着您需要在导航案例的to-view-id
中使用原始JSF view-id网址,并且必须使用<redirect/>
才能修改PrettyFaces出站URL并将其重写为漂亮的表单。
像这样的东西
<navigation-case>
<from-outcome>from-outcome</from-outcome>
<to-view-id>/topics/view.xhtml</to-view-id>
<redirect>
<view-param>
<name>id</name>
<value>54233</value>
</view-param>
</redirect>
</navigation-case>
如果您的pretty-config.xml
中有适当的地图,则PrettyFaces会向/topics/54233
发送重定向
<url-mapping>
<pattern value="/topics/#{id}" />
<view-id value="/topics/view.xhtml" />
</url-mapping>
所有这些放在一起将导致成功的重定向。但是,一般情况下,如果你要在faces-config.xml中工作,你只需假装PrettyFaces不存在,并记得使用<redirect/>
。