gpt4 book ai didi

jsf - 如何确定代码中的当前 JSF 生命周期阶段

转载 作者:行者123 更新时间:2023-12-04 16:46:47 24 4
gpt4 key购买 nike

我正在使用 JSF 版本 1.2_09-b02-FCS

让我有一个其他类的内部类TableList:

private class TableList extends AbstractList<T> {

private List<T> list;

private int size;

public T get(int i) {
if (needToUpdateList || currPage != i / pageSize) {
currPage = i / pageSize;
list = getDataList(currPage * pageSize, pageSize);
needToUpdateList = false;
}
return list.get(i % pageSize);
}

public int size() {
if (needToUpdateSize) {
size = getDataSize();
needToUpdateSize = false;
}
return size;
}
}

将在 JSF 生命周期阶段调用其 get 方法。问题是我不想在渲染响应阶段调用 list = getDataList(currPage * pageSize, pageSize);。有可能吗?

最佳答案

检查是否FacesContext#getRenderResponse()返回真。

if (FacesContext.getCurrentInstance().getRenderResponse()) {
// We're currently in the render response phase.
}

如果您使用的是 JSF 2.0,则不应使用该方法,而应使用 FacesContext#getCurrentPhaseId()因为 getRenderResponse() 在初始 GET 请求的呈现响应期间错误地返回 false

关于jsf - 如何确定代码中的当前 JSF 生命周期阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25481154/

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