将JSFbean注入Springbean——不可能?
我有一个JSF2.0bean:将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
@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”。