数组结果继续得到最后的结果



我把我的部分代码,我认为是问题的根源,但我不能弄清楚因此为什么我在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);

最新更新