[英]JSF2 Spring3 integration
@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>
我在返回name+"-->"+loginService.serviceDetails();
處得到loginService的空指針異常name+"-->"+loginService.serviceDetails();
1)如何解決以上問題
2)我可以使用@Inject
代替@ManagedBean(name="helloBean")
嗎? 怎么做?
我認為您不能同時使用@ManagedBean
和spring。 如果希望通過spring管理bean,則需要使用spring ELResolver
(在faces-config.xml中),然后在JSF bean上也使用@Named
和@Scope("session")
。 然后,您可以(並且必須)使用@Inject
而不是@ManagedX
作為一個旁注-避免按名稱引用非jsf bean-僅依賴於它們的類型-至少將使您省去重構的麻煩。 對於JSF bean,您可以依賴默認命名並使用不帶參數的@Named
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.