首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSF2 Spring3集成

JSF2 Spring3集成
EN

Stack Overflow用户
提问于 2011-09-20 23:44:56
回答 1查看 475关注 0票数 0
代码语言:javascript
复制
@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;
    }
}

..。

代码语言:javascript
复制
    @Named("loginService")
    public class LoginServiceImpl implements LoginService {

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

ApplicationContext.xml文件:

代码语言:javascript
复制
<beans
    <context:component-scan base-package="com.myapp"/>
</beans>

我在返回name+"-->"+loginService.serviceDetails();时收到loginService的空指针异常

1)如何解决上述问题

2)可以使用@Inject代替@ManagedBean(name="helloBean")吗?如何做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-21 00:15:18

我不认为你可以同时使用@ManagedBean和spring。如果希望由spring管理bean,则需要使用spring ELResolver (在faces-config.xml中),然后在JSF上使用@Named@Scope("session")。然后,您可以(而且必须)使用@Inject而不是@ManagedX

顺便说一句--避免用名字来引用非jsf beans -只依赖它们的类型--至少它会帮你省去重构方面的麻烦。对于JSF,您可以使用缺省命名,并使用不带参数的@Named

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7487944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档