Проблема интеграции красивых лиц с JSF

Мне нужно интегрировать симпатичные лица с моим приложением jsf 2.0, primefaces, но оно доставляет некоторые проблемы.

Как уже упоминалось в начале работы, я разместил следующее в своем файле web.xml, добавил требуемый файл jar в папку lib

<filter>
  <filter-name>Pretty Filter</filter-name>
  <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
  <async-supported>true</async-supported>
 </filter>

 <filter-mapping>
    <filter-name>Pretty Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>ERROR</dispatcher>
 </filter-mapping>

другие элементы в моем web.xml

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <context-param>
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
  </context-param>
  <context-param>
        <param-name>org.primefaces.extensions.DELIVER_UNCOMPRESSED_RESOURCES</param-name>
        <param-value>false</param-value>
  </context-param>

Но я получаю следующее сообщение об ошибке:

Invalid content was found starting with element 'async-supported'. One of '{"http://java.sun.com/xml/ns/javaee":init-param}' is expected

Если я удалю <async-supported> из сборок проекта, проект компилируется, но отображение не работает.

pretty-config.xml так же, как в начале.

Нужно ли упоминать в моем web.xml имя / путь файла сопоставления, то есть pretty-config.xml?

РЕДАКТИРОВАТЬ:

Я использую сервер Glassfish 3.

1 ответ

Решение

Очень важно проверить version атрибут, который вы используете в вашем web.xml, Если у вас есть version="2.5" установить, вы должны добавить это в ваш web.xml:

<filter>
  <filter-name>Pretty Filter</filter-name>
  <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class>
</filter>
<filter-mapping> 
  <filter-name>Pretty Filter</filter-name> 
  <url-pattern>/*</url-pattern> 
  <dispatcher>FORWARD</dispatcher> 
  <dispatcher>REQUEST</dispatcher> 
  <dispatcher>ERROR</dispatcher>
</filter-mapping>

Пожалуйста не то <async-supported>true</async-supported> здесь НЕ установлен, потому что он поддерживается только в Servlet 3.0.

Если у вас есть version="3.0" установить в вашем web.xml, вам не нужно ничего добавлять в ваш web.xml. В этом случае PrettyFaces автоматически регистрирует фильтр, используя web-fragment.xml что входит в prettyfaces-jsf2.jar,

Вам не нужно указывать местоположение pretty-config.xml в любом месте. Просто поместите это в свой WEB-INF папка и PrettyFaces найдет ее.

Вы также должны добавить одно отображение к вашему pretty-config.xml, так что вы можете проверить, все ли работает правильно. Если у вас есть, например, страница, к которой вы обычно обращаетесь, используя URL-адрес, например:

http://localhost:8080/myapp/faces/login.xhtml

Затем вы можете добавить это отображение:

<url-mapping id="login">
  <pattern value="/login" />
  <view-id value="/faces/login.xhtml" />
</url-mapping>

Теперь вы сможете получить доступ к странице по этой ссылке:

http://localhost:8080/myapp/login
Другие вопросы по тегам