3

Glassfish 3.1.2.2で実行されているWebアプリがあり、JSF 2.1(Mojarra)とPrettyFaces 3.3.3を使用して、「きれいな」RESTスタイルのURLをアプリケーションに統合するタスクを容易にしています。

ただし、生成されたhtmlコードを見ると、アプリケーションリソースへのかなり「醜い」長いパスがわかります。このような:

<script type="text/javascript" src="/HelloWorld/faces/javax.faces.resource/js/jquery-1.9.1.min.js">

具体的には、そのfaces/javax.faces.resource/部分が私の目を傷つけます。PrettyFacesの主なアイデアに従って、この部分を削除してもらいたいと思います。

これらのURLの生成を傍受することは可能ですか?PrettyFacesはそれを支援してくれますか?

を使用して<h:outputScript name="js/jquery-1.9.1.min.js" />おり<h:outputStylesheet name="css/app.css" /><h:graphicImage name="img/logo.png" />JSFサーブレットにリソース参照を含めています。

編集:私は2つのことをしなければならないと思いますか?

  • /img/*1つ:リクエストを実際の場所にマップします/faces/javax.faces.resource/img/*
  • <h:graphicImage />2:要素(およびその他)のURL生成に接続します。

どこから始めればよいかについて、いくつかの指針を教えていただければ幸いです。私はJSFにかなり慣れていません。

どうもありがとう!:)

4

1 に答える 1

3

残念ながら、PrettyFacesでこのような要件を実装することは非常に困難です。これが、PrettyFacesの後継であるRewriteを開始することにした理由の1つです。

Rewriteを使用すると、このようなことを非常に簡単に行うことができます。表示したいパスをアプリケーションが現在使用しているパスに変換する結合ルールを追加するだけです。

要件は、次のようなもので実装できます。

.addRule(Join.path("/js/{file}").to("/faces/javax.faces.resource/js/{file}"))

簡単ですね。Rewriteの詳細については、構成例をご覧ください。問題がある場合は、フォーラムをご覧ください。

間もなくリリースされるRewrite2.0.0.Finalは、いくつかの優れた機能拡張をもたらします。特に、PrettyFacesの下位互換性モジュール。これにより、PrettyFacesをRewriteに置き換えたい場合に、現在のPrettyFaces構成を再利用できます。

于 2013-03-24T09:50:05.067 に答える