2

きれいな顔をjsf2.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を使用しています。

4

1 に答える 1

5

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>サーブレット3.0でのみサポートされているため、ここでは設定されていないことに注意してください。

web.xmlを設定している場合はversion="3.0"、web.xmlに何も追加する必要はありません。この場合、PrettyFacesweb-fragment.xmlは、に含まれているを使用してフィルターを自動的に登録しますprettyfaces-jsf2.jar

どこの場所も指定する必要はありませんpretty-config.xml。それをWEB-INFフォルダに置くだけで、PrettyFacesがそれを見つけます。

pretty-config.xmlまた、すべてが正しく機能するかどうかを確認できるように、に1つのマッピングを追加する必要があります。たとえば、次のような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
于 2012-10-15T11:58:40.363 に答える