Java 来自单个println的多个日志语句
我编写arraylist的大小只是为了调试,但我注意到我在Eclipse的日志窗口中多次获得该值。每次都不同,它适用于我使用System.out.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
日志窗口
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());
}
}