gpt4 book ai didi

jsf - @PostConstruct 方法没有被调用

转载 作者:行者123 更新时间:2023-12-01 17:41:58 27 4
gpt4 key购买 nike

我想使用 @PostConstruct 在我的 web 应用程序中初始化一个 bean,但我无法让它工作。

我已经在新项目中重新创建了该问题,但仍然无法正常工作。

我在这里遗漏了一些明显的东西吗?据我所知,我的 init() 方法满足 @PostConstruct API 引用中列出的所有要求。

MyBean.java:

@ManagedBean
@RequestScoped
public class MyBean {
@ManagedProperty(value="15")
private int number = 10;

@PostConstruct
public void init(){
number = 20;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}
}

number.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">

<h:head>
<title>Simple JSF Facelets page</title>
</h:head>

<h:body>
Number = #{myBean.number}
</h:body>

</html>

我期望 Number = 20 但我得到 Number = 15

最佳答案

@PostConstruct 似乎在使用 @ManagedProperty 注入(inject)之前调用,假设您有 MyFaces 2.0,正如他们所说的 here .

确保您使用的是 Mojarra 2.1,因为它应该可以工作。

您可以尝试调试以了解 init() 方法是否在注入(inject)之前被调用,或者从未被调用。

关于jsf - @PostConstruct 方法没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21318227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com