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==";
        }
    }

中文件:

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

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

我该如何解决上述问题

2)我可以用@Inject代替@ManagedBean(name="helloBean")吗?怎么做呢?

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

作为旁注—避免通过名称引用非jsf bean—只依赖它们的类型—这至少会为您省去重构的麻烦。对于JSF bean,您可以依赖默认命名并使用不带参数的@Named

相关内容

  • 没有找到相关文章

最新更新