Сохраняйте URL-адреса без расширений prettyfaces как "to-view-Id" в файле face-config.xml
Как сохранить созданные пользователем Prettyfaces URL без расширений в to-view-id
в пределах faces-config.xml
чтобы не дописывать .xhtml
до конца этого?
Например, при определении случая навигации я определяю to-view-id
как /topics/54233
но лица-конфиг перенаправляет меня на /topics/54233.xhtml
что я, безусловно, хочу предотвратить. Как мне это сделать?
Я знаю, что существуют методы навигации Prettyfaces, но я не могу работать с Prettyfaces для навигации (так как это не позволяет создавать разные варианты навигации для результата, основанного на разных from-view-id(s), которые предлагаются лицами -config.xml), поэтому я скорее пытаюсь сохранить эту работу с Face-config.xml
1 ответ
Во-первых, вы не можете использовать "URL-адреса prettyfaces" в faces-config.xml
из-за архитектуры системы навигации лиц. (К тому времени, как Face-config.xml обрабатывается для навигации, все остальные расширения уже не имеют возможности действовать.)
Это означает, что вам нужно использовать исходный URL-адрес представления JSF в to-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>
Все это вместе приведет к успешному перенаправлению. Тем не менее, в общем, если вы собираетесь выполнять работу с Face-config.xml, вам просто нужно сделать вид, что PrettyFaces не существует, и не забудьте использовать <redirect/>
,