2

Guiceを使用してJSFマネージドBeanのプロパティを注入しようとしています。これはすべてGoogleAppEngineで実行されています(重要な場合と重要でない場合があります)

私はここの指示に従いました:

http://code.google.com/docreader/#p=google-guice&s=google-guice&t=GoogleAppEngine

1つの問題は最初のステップにあります。FacesはHttpServletではなくサーブレットをサブクラス化するjavax.faces.webapp.FacesServletによって処理されるため、サーブレットモジュールをサブクラス化してそこにサーブレットマッピングを設定することはできません。そこで、2番目のステップで説明したコンテキストリスナーでインジェクターを作成するときに、サーブレット構成をweb.xmlファイルに残し、ビジネスモジュールとともに新しいServletModel()をインスタンス化してみました。

これらすべてを行った後、web.xml構成とともに、管理対象Beanにプロパティが注入されていません。方法は次のとおりです。

@ManagedBean
@ViewScoped
public class ViewTables implements Serializable
{
    private DataService<Table> service;

    @Inject
    public void setService( DataService<Table> service )
    {
        this.service = service;
    }
    public List<Table> getTables()
    {
        return service.getAll();
    }
}

では、GuiceをJSFマネージドBeanに注入するためのトリックがあるかどうか疑問に思っていますか?JSFはBeanを作成するために引数なしのコンストラクターを必要とするため、コンストラクターインジェクションを使用できないことは明らかです。

4

6 に答える 6

5

次のJSF-Guice統合フレームワーク/アドバイスを確認してください。

http://code.google.com/p/jsf-sugar/

http://notdennisbyrne.blogspot.com/2007/09/integrating-guice-and-jsf.html

http://cagataycivici.wordpress.com/2007/03/26/integrating_guice_and_jsf/

http://snippets.dzone.com/posts/show/7171

于 2009-12-29T07:08:41.037 に答える
1

HTTPサーブレットを作成して、リクエストをFacesServlet(ラッパーなど)に単純に委任することもできます。これにより、Guiceサーブレットを使用しても同じ効果が得られます。

于 2009-12-29T07:36:12.940 に答える
1

このアプローチはどうですか、私たちにとってうまくいきます:

http://uudashr.blogspot.com/2008/12/guicing-jsf-with-guice.html

于 2010-07-25T23:01:43.630 に答える
0

jsf砂糖の開発者である私は、あなたがそれを使用していた問題を本当に知りたいです。すでにここで本番環境で使用しているので、「ショーストッパー」はないはずです。何かが十分に文書化されていないのではないでしょうか。メールを送ってください:murbanek(at)gmx_net(_を。に置き換えてください)。

于 2010-02-04T13:46:39.857 に答える
0

http://code.google.com/p/guice2jsf/とウェブサイトstarchu.blogspot.comをチェックしてください。これには、GuiceとJSF2.0の統合を提供する優れたライブラリがあります。

于 2010-03-13T09:48:21.980 に答える
0

この投稿の情報は古くなっていますが、質問はまだ関連しているので、このトピックに関する私の調査結果を共有したいと思います。完全にguiceを利用したWebスタックをセットアップする方法について、実行可能なサンプルプロジェクトを含む小さなチュートリアルを作成しました。ここで見つけることができます:https ://github.com/skuzzle/guice-jsf

于 2015-06-19T06:06:59.430 に答える