gpt4 book ai didi

JSF 1.2 - PostConstruct 是在 getter 之前还是之后执行

转载 作者:行者123 更新时间:2023-11-28 19:54:44 25 4
gpt4 key购买 nike

我有这个支持 bean 的代码:

@PostConstruct
public void refreshData()
{
rows = (int) dd.getRows();
pages = dd.getPages();
getRender();
}

// action
public void getCount(String sql, Object... values)
throws Exception
{
dd.getCount(sql, values);
rows = (int) dd.getRows();
pages = dd.getPages();
}

// getter methods
public boolean getRender() {
System.out.println("pages: "+pages);
boolean rendered = pages > 0? true: false;
return rendered;
}

public int getRows() {
return rows;
}
public int getPages() {
return pages;
}

带有 @PostConstruct 指令的 refreshData() 方法是在所有 getter 方法之后还是之前执行?我问这个是因为我注意到 getRender() 方法总是返回零,即使 getPages() 返回一个数字,例如 10。

最佳答案

我不知道“在所有 getter 方法之前”是什么意思。至少 @PostConstruct 在构造 bean 设置所有托管属性(在 faces-config.xml 中定义的 bean 属性)之后立即被调用。 xml).

因此大致:

  1. Bean 构建完成。
  2. 已设置托管属性。
  3. @PostConstruct 被调用。
  4. Bean 被引入 JSF 生命周期。

您的问题很可能是该值被其他内容覆盖了。只需运行调试器或让专家检查您的代码。

关于JSF 1.2 - PostConstruct 是在 getter 之前还是之后执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1804778/

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