/ / JSF2 Spring3統合 - spring、jsf、jsf-2

JSF2 Spring3統合 - spring、jsf、jsf-2

@ManagedBean(name="helloBean")
@SessionScoped
public class HelloBean implements Serializable {
@Inject
@Named("loginService")
LoginService loginService;

private String name;

public String getName() {
return name+"-->"+loginService.serviceDetails();
}

public void setName(String name) {
this.name = name;
}
}

...

    @Named("loginService")
public class LoginServiceImpl implements LoginService {

public String serviceDetails() {
return "==From Service==";
}
}

ApplicationContext.xmlファイル:

<beans
<context:component-scan base-package="com.myapp"/>
</beans>

私は戻ってloginServiceのnullポインタの例外を取得しています name+"-->"+loginService.serviceDetails();

1)上記の問題を解決する方法

2)の代わりに @ManagedBean(name="helloBean") 使ってもいいですか @Inject?どうやってするか?

回答:

回答№1は0

あなたが使うことはできないと思う @ManagedBean 同時に春も春。あなたの豆が春までに管理されるようにするには、 ELResolver (faces-config.xml内で) @Named そして @Scope("session") JSF beanについても同様です。それから、あなたは使うことができます。 @Inject のではなく、 @ManagedX

sidenoteとして - 非jsfを参照しないようにする名前で豆 - そのタイプのみに頼っている - 少なくともリファクタリングで頭痛を軽減します。また、JSF Beanでは、デフォルトの命名と使用に依存することができます @Named 引数なし。