2

我正在尝试使用 Guice 注入 JSF 托管 bean 的属性。这一切都在 Google App Engine 上运行(这可能很重要,也可能不重要)

我已按照此处的说明进行操作:

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

一个问题在于第一步。我不能子类化 Servlet 模块并在那里设置我的 servlet 映射,因为 Faces 由 javax.faces.webapp.FacesServlet 处理,该 javax.faces.webapp.FacesServlet 是 Servlet 的子类,而不是 HttpServlet。因此,我尝试将我的 servlet 配置留在 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

1

You can also create an HTTP servlet that then simple delegates the request on to a FacesServlet (like a wrapper). This should give you the same effect using Guice Servlet.

于 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 Sugar 的开发人员,我真的很想知道您在使用它时遇到的问题。我们已经在这里的生产中使用它,所以不应该有任何“表演障碍”,也许有些东西没有很好的记录?只需给我发一封邮件:murbanek(at)gmx_net(将 _ 替换为 .)。

于 2010-02-04T13:46:39.857 回答
0

查看http://code.google.com/p/guice2jsf/和网站 starku.blogspot.com,它有提供 Guice 和 JSF 2.0 集成的优秀库

于 2010-03-13T09:48:21.980 回答
0

由于这篇文章中的信息已经过时,但问题仍然相关,我想分享我对这个主题的发现。我写了一个小教程,包括一个关于如何设置一个完全由 guice 驱动的 web 堆栈的可运行示例项目。你可以在这里找到它:https ://github.com/skuzzle/guice-jsf

于 2015-06-19T06:06:59.430 回答