@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
引数なし。