#jsf #jsf-2
#jsf #jsf-2
Вопрос:
С jsf 2.x я хочу использовать URL-адреса, такие как
../admin1.xhtml
../admin2.xhtml
../admin3.xhtml
все это должно вызывать один и тот же файл xhtml (generic.xhtml), но с таким параметром:
../generic.xhtml?page=admin1
../generic.xhtml?page=admin2
../generic.xhtml?page=admin3
вместо создания множества бесполезных идентичных файлов xhtml для обслуживания запросов. Как я могу лучше добиться этого с помощью jsfs? Обязан ли я писать множество XML-файлов или я могу создать простое правило в faces-config.xml , или я должен использовать какие-то другие инструменты?
Ответ №1:
Используйте PrettyFaces url prettyfier . Прежде всего, это позволит вам удалить расширения ваших файлов, что считается лучшей практикой (вы сможете изменить свою серверную среду, не изменяя сами URL-адреса).
Кроме того, есть возможность интегрировать сам параметр в URL:
<!-- Maps "/admin/#{page}" to the URL "/generic.xhtml?page=value" -->
<url-mapping id="admin-view">
<pattern value="/admin/#{page}" />
<view-id value="/generic.xhtml" />
</url-mapping>
Таким образом, вы сможете ввести:
/admin/admin1
И это приведет вас к:
/generic.xhtml?page=admin1