Java 来自单个println的多个日志语句

Java 来自单个println的多个日志语句,java,jsf,jakarta-ee,Java,Jsf,Jakarta Ee,我编写arraylist的大小只是为了调试,但我注意到我在Eclipse的日志窗口中多次获得该值。每次都不同,它适用于我使用System.out.println(..)调试的其他地方。发生这种情况的原因是什么 日志窗口 INFO: 4 INFO: 4 INFO: 4 INFO: 4 看法 扁豆 import java.io.Serializable; import java.util.ArrayList; import javax.faces.bean.ManagedBean; imp

我编写arraylist的大小只是为了调试,但我注意到我在Eclipse的日志窗口中多次获得该值。每次都不同,它适用于我使用System.out.println(..)调试的其他地方。发生这种情况的原因是什么


日志窗口

INFO: 4
INFO: 4
INFO: 4
INFO: 4
看法


扁豆

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());
    }
}
import java.io.Serializable;
导入java.util.ArrayList;
导入javax.faces.bean.ManagedBean;
导入javax.faces.bean.ViewScoped;
@视域
@ManagedBean
公共类DefaultNewQuestionHandler扩展QuestionHandler实现可序列化{
私有静态最终长SerialVersionId=-6986655384538762284L;
@凌驾
公共void init(){
answers=newarraylist();
对于(int i=0;i<4;i++){
addAnswerAlternative();
}
System.out.println(answers.size());
}
}

JSF倾向于多次调用支持bean上的方法(如本文所述)。通常,最好计算结果,将其粘贴到字段中,并让JSF页面引用一个只返回字段值的方法。

由于JSF的请求-响应生命周期,您在日志中多次获得该值。初始请求产生4个日志条目,因为JSF执行还原视图、应用请求值、处理事件和呈现响应阶段。

您能提供
addAnserAlternative
吗?另外,尝试更改
for
循环,如下所示:
我不确定我是否理解?您得到了四次日志记录,因为JSF框架调用了四次
init()
方法。
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());
    }
}