簡體   English   中英

JSF2 Spring3集成

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM