我编写数组列表的大小只是为了调试目的,但我注意到我在 Eclipse 的日志窗口中多次获取该值。每次都是不同的,并且它适用于我使用 System.out.println(..) 进行调试的其他地方。为什么会发生这种情况?
<小时/>日志窗口
INFO: 4
INFO: 4
INFO: 4
INFO: 4
查看
<f:metadata>
<f:event listener="#{defaultNewQuestionHandler.init}" type="preRenderView" />
</f:metadata>
支持bean
import java.io.Serializable;
import java.util.ArrayList;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ViewScoped
@ManagedBean
public class DefaultNewQuestionHandler extends QuestionHandler implements Serializable {
private static final long serialVersionUID = -6986655384538762284L;
@Override
public void init() {
answers = new ArrayList<Answer>();
for (int i = 0; i < 4; i++) {
addAnswerAlternative();
}
System.out.println(answers.size());
}
}
最佳答案
由于 JSF 的请求响应生命周期,您会在日志中多次获取该值。初始请求会产生 4 个日志条目,因为 JSF 执行“恢复 View ”、“应用请求值”、“处理事件”和“渲染响应”阶段。
关于java - 来自单个 println 的多个日志语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8505966/