我把我的部分代码,我认为是问题的根源,但我不能弄清楚因此为什么我在StackOverFlow现在。无论如何,这个类是我设置我的数据,并将其传递到一个数组。
public ArrayList<select.rates> caseGetRates() throws RateTableException, SessionDisconnectedException {
try {
for(int i=0;i < arrayRate.size();i++){
ArrayList<select.rates> arr = new ArrayList<select.rates>();
this.setPair(array[0]);
this.setBid((array[2]));
this.setAsk((array[3]));
arr.add(this);
}
return arr;
} finally{}
}
当我System.out.print
我在这个类中设置的数据时它会给我:
EUR/USD
1.12372
1.12384
USD/JPY
100.622
100.641
这是正确的,我想要它显示在我的网页上。然而,当我将数据传递给Servlet
try {
ArrayList<select.rates> rates = example.caseGetRates();
for(int i=0;i < rates.size();i++){
System.out.println("");
System.out.println(rates.get(i).getPair());
System.out.println(rates.get(i).getBid());
System.out.println(rates.get(i).getAsk());
}
request.setAttribute("rates", rates);
}
request.getRequestDispatcher("/NewFile.jsp").forward(request, response);
我在Servlet上得到的结果是:
USD/JPY
100.622
100.641
USD/JPY
100.622
100.641
结果确实循环两次,但数据似乎被覆盖,我仍然无法弄清楚为什么会发生这种情况。我希望有人能指出我的错误。
创建ArrayList
对象
并在for循环中创建新对象,你要添加到ArrayList
try {
ArrayList<select.rates> rates = example.caseGetRates();
for(int i=0;i < rates.size();i++){
// create new object here and then add to ArrayList
}
request.setAttribute("rates", rates);
}
request.getRequestDispatcher("/NewFile.jsp").forward(request, response);