красивые лица не работают

Я попробовал красивые лица с помощью своего jsf-приложения. URL-адрес не изменился. Я выполнил шаги, указанные на сайте.
pom.xml

<dependency>
    <groupId>org.ocpsoft.rewrite</groupId>
    <artifactId>rewrite-servlet</artifactId>
    <version>2.0.12.Final</version>
</dependency>
<dependency>
    <groupId>org.ocpsoft.rewrite</groupId>
    <artifactId>rewrite-config-prettyfaces</artifactId>
    <version>2.0.12.Final</version>
</dependency>

Я добавил симпатичный-config.xml в WEB-INF/
симпатичный-config.xml

    <pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
                      http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">

    <url-mapping id="login">
        <pattern value="/login" />
        <view-id value="/pages/unsecure/login.jsf" />
    </url-mapping>


</pretty-config>

URL моего локального проекта (полный URL)

http://localhost:9080/имя_проекта/pages/unsecure/login.jsf

Я использую myfaces2.2.7,spring/security,hibernate,tomcat7
Есть ли другие настройки, которые мне нужно сделать? Чего мне не хватает. Я не понимаю.
Что именно мне делать? Заранее спасибо..< br>
ОБНОВЛЕНИЕ:
Я не получаю никаких ошибок. Просто не работает. URL не меняется..


person erginduran    schedule 11.02.2015    source источник


Ответы (1)


URL-адрес в браузере не изменится автоматически. PrettyFaces сопоставляет красивые URL-адреса с внутренними URL-адресами. Итак, если вы запрашиваете:

http://localhost:9080/projectName/login

Фактически вы увидите страницу /pages/unsecure/login.jsf, как указано в конфигурации. Навигация с использованием навигации JSF или внутренних перенаправлений на эту страницу будет автоматически использовать красивый URL-адрес.

Если вы хотите автоматически перенаправить с внутреннего URL-адреса на красивый URL-адрес из внешних запросов (как в вашем примере), вам нужно добавить условие перезаписи для этого:

    <pretty-config xmlns="http://ocpsoft.org/schema/rewrite-config-prettyfaces" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://ocpsoft.org/schema/rewrite-config-prettyfaces
                      http://ocpsoft.org/xml/ns/prettyfaces/rewrite-config-prettyfaces.xsd">

    <url-mapping id="login">
        <pattern value="/login" />
        <view-id value="/pages/unsecure/login.jsf" />
    </url-mapping>

    <rewrite match="/pages/unsecure/login.jsf" substitute="/login" redirect="301"/>

</pretty-config>

Кроме того, вы можете использовать Rewrite непосредственно для обоих этих правил (поскольку вы уже используя Rewrite с расширением PrettyFaces), используя правило Join:

@RewriteConfiguration
public class ExampleConfigurationProvider extends HttpConfigurationProvider
{
   @Override
   public int priority()
   {
     return 10;
   }

   @Override
   public Configuration getConfiguration(final ServletContext context)
   {
     return ConfigurationBuilder.begin()
       .addRule(Join.path("/login").to("/pages/unsecure/login.jsf").withInboundCorrection());
    }
}

Обратите внимание на вызов метода .withInboundCorrection(). Это автоматически настраивает входящее перенаправление со СТАРОГО URL-адреса на НОВЫЙ URL-адрес.

Надеюсь, это поможет. Ваше здоровье!

person Lincoln    schedule 12.02.2015