1

私の Web アプリケーションには、String から java.util.LinkedHashMap (およびその逆) に変換するコンバーターがあります。Prettyfaces を使用しようとすると、404 リソースが見つからないというエラーが発生します。これが私のセットアップです:

まず、この投稿に従って、コンバーターを装飾してみました

@FacesConverter(forClass = LinkedHashMap.class)

私も追加してみました

<converter>
  <converter-for-class>java.util.LinkedHashMap</converter-for-class>
  <converter-class>util.UrlConverter</converter-class>
</converter>

私のfaces-config、xmlに。

今、私の pretty-config.xml の関連コードは次のとおりです。

<url-mapping id="details">
<pattern value="/dataset/#{id}" />
<view-id value="/faces/details.xhtml" />
</url-mapping>

URL の書き換え自体が機能するので、最終的に URL に たどり着きます: http://server.com/appname/dataset//someID「/dataset」には常に 2 つの「/」があります。これが私の問題の理由である場合、どうすればこれらのスラッシュを書き直すことができますか?

4

1 に答える 1

1

/性格が本当にあなたの問題の原因だと思います。デフォルトでは、PrettyFaces は正規表現を使用して[^/]+パス パラメータを照合します。/そのため、パス パラメータに文字が含まれている場合、マッピングは一致しません。

ここで説明されているように、パス パラメーターにカスタム正規表現を使用する必要があります。

http://ocpsoft.org/docs/prettyfaces/3.3.3/en-US/html/Configuration.html#config.pathparams.regex

これは、次のようなものが機能することを意味します。

<url-mapping id="details">
  <pattern value="/dataset/#{ /.+/ id }" />
  <view-id value="/faces/details.xhtml" />
</url-mapping>

/別のオプションは、コンバーターで文字を別のものに置き換えることです。

于 2013-02-22T06:14:03.827 に答える