@ManagedBean(name =“ foo”)在EL#{foo}中不可用

涡流

我正在尝试在JSF2中使用应用程序范围的bean,但是由于某种原因,它始终null在我的请求范围的bean中。这是我正在使用的代码:

该应用程序范围的Bean:

@ManagedBean(eager=true, name="applicationTracking")
@ApplicationScoped
public class ApplicationTracking implements Serializable {
    private static final long serialVersionUID = 4536466449079922778L;

    public ApplicationTracking() {
        System.out.println("ApplicationTracking constructed");
    }
}

请求范围的Bean:

@ManagedBean
@RequestScoped
public class SearchResults implements Serializable {    
    private static final long serialVersionUID = 4331629908101406406L;

    @ManagedProperty("#{applicationTracking}")
    private ApplicationTracking appTracking;

    public ApplicationTracking getAppTracking() {
        return appTracking;
    }

    public void setAppTracking(ApplicationTracking appTrack) {
        this.appTracking = appTrack;
    }

    @PostConstruct
    public void init() {
        System.out.println("SearchResults.init CALLED, appTracking = " + appTracking);
    }
}

根据我在论坛上看到的所有内容,此方法无需任何其他配置即可工作。当我启动服务器(Tomcat)时,我看到ApplicationTracking构造函数和init方法被调用。

但是在我的SearchResults组件中,中的打印输出PostConstruct始终为null:

SearchResults.init CALLED, appTracking = null 

我想念什么?

BalusC

如果您从正确的包中导入了这些批注javax.faces.bean.*,那么如果您在faces-config.xml不同的托管Bean名称上重新注册了完全相同的托管Bean类,则会发生此问题摆脱该faces-config.xml条目。这就是注册托管Bean的JSF 1.x样式。在JSF 2.x中,您不需要它。无论如何,当这样做时,它将覆盖托管bean类上任何基于注释的注册,从而导致它们无效。

确保在学习和使用JSF 2.x时不要阅读针对JSF 1.x的资源。在JSF 2.x中,许多事情以不同的方式完成。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

防止foo =“ *”中的glob扩展;回声$ foo

Java中的“ new Foo(){}”与“ new Foo()”

理解 Python 中的 [foo for bar, foo in arr]

Clojure中的:foo,:: foo,:: bar / foo和:bar / foo有什么区别?

是foo吗?Foo与kotlin中的foo完全等同于foo吗?

Foo <?,?,?>不是Foo <?,?,?>

null == foo与foo == null

foo(void)与foo(void *)

“ foo(* a)”在Python中如何工作?

`foo()的yield和foo()中的x的区别:yield x`

将kwargs和kwargs ['foo']中的'foo'简化为True:

js中“ foo.bar”和“ foo ['bar']”之间的区别

Bash 中的 `declare foo` 和 `foo=` 有什么区别?

bash中的“ foo && bar || baz”与“ if foo; then bar; else baz”不同

从 Foo::MyClass 调用模块 Foo 中的 Ruby 方法

函数签名中typedef void FOO与#define FOO void的含义

Go中[] Foo(nil)和[] Foo {}之间的区别

“WHERE foo”和“WHERE foo IS TRUE”在 PostgreSQL 中是等价的吗?

关于Lua中“ local foo = foo”成语的说明

<a>标记中的http://foo.com与//foo.com?

java中foo(int)和foo(Integer)的区别

<p v-text="foo"> vs {{ foo }} 在 vue 中?

Qt中`:/ foo`,`qrc:/ foo`和`qrc:/// foo`路径之间的区别

在 TS 泛型中,为什么 T != { foo: T['foo'] } & Omit<T, 'foo'>?

python中装饰器中的foo=bar(foo)和something=bar(foo)有什么区别?

在python中,'foo ==(8或9)'或'foo == 8或foo == 9'更正确吗?

如何查找。-name * foo *`工作吗?

x:Name 属性值在后面的代码中不可用

rsync〜/ foo target / foo是否与rsync〜/ foo / target / foo /相同?