Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSFbean注入Springbean——不可能?_Spring_Jsf_Dependency Injection - Fatal编程技术网

将JSFbean注入Springbean——不可能?

将JSFbean注入Springbean——不可能?,spring,jsf,dependency-injection,Spring,Jsf,Dependency Injection,我有一个JSF2.0bean: @ManagedBean @SessionScoped public class LoginBean implements Serializable { protected String name; public String getName() { return name; } //.... } 我有一个Spring 3.0 bean: @Repository public class Logins

我有一个JSF2.0bean:

@ManagedBean
@SessionScoped
public class LoginBean implements Serializable
{
    protected String name;

    public String getName()
    {
        return name;
    }

    //....
}
我有一个Spring 3.0 bean:

@Repository
public class Logins
{
    @ManagedProperty(value="#{loginBean}")
    protected LoginBean loginBean;

    public void recordLogin()
    {
         //... record in db that loginBean.getName() just logged in
    }
}
此代码无效,从未设置Logins.loginBean

或者(同样的问题,简化了)-下面的代码会工作吗

@Repository
public class SpringBean
{
    @ManagedProperty(value="#{session.id}")
    protected String id;

    //....
}
ContextLoaderListener和RequestLoaderListener在web.xml中声明

有可能将JSFbean注入Springbean吗?(不使用另一个额外的框架)


或者我应该将JSFbean转换成Springbean,并在faces-config.xml中使用DelegatingVariableResolver技巧?我已经用一个测试Springbean对此进行了测试,它是有效的。

在SpringManagedBean中使用JSF注释不起作用。它不应该——你不应该在其他层中注入来自web层的东西。应该是另一种方法——将spring服务(或存储库)注入web组件(jsf托管bean),并在其上调用方法,在spring托管bean中使用jsf注释将托管bean属性作为参数传递,这样做行不通。它不应该——你不应该在其他层中注入来自web层的东西。应该是另一种方法-将spring服务(或存储库)注入web组件(jsf托管bean),并调用它们上的方法,将托管bean属性作为参数传递

谢谢,这证实了我在谷歌搜索了一个小时后的猜测:)我最初的想法是将LoginBean转换为SpringBean,但你没有从web层进行注入是对的。因此,我将把Spring“登录”注入JSF“LoginBean”。谢谢,这证实了我在谷歌搜索了一个小时但没有成功的猜测:)我最初的想法是将LoginBean转换为SpringBean,但你没有从web层注入是对的。因此,我将把Spring“Logins”注入JSF“LoginBean”。