嗨我在使用arraylist.i从数据库中检索数据时遇到了一些问题。我只能得到该列的最后一个条目。我的代码是任何帮助都表示赞赏。谢谢你提前。
这是iam从数据库中提取数据的地方
VariableIntialization location = new VariableIntialization();
HttpSession session = request.getSession();
String sql = "SELECT * FROM country";
Database db= new Database();
PreparedStatement pst = db.getConnection().prepareStatement(sql);
ResultSet i = pst.executeQuery();
while (i.next()) {
String country_id = i.getString(1);
String country = i.getString(2);
ArrayList<String> countries = new ArrayList<String>();
countries.add(country);
location.setcountry(countries);
location.setcountry_id(country_id);
}
session.setAttribute("deshopa_country", location);
response.sendRedirect("admin/stateadd.jsp");
这是我的.java类,数据进入..
package requirementlogic;
import java.util.ArrayList;
public class VariableIntialization {
private ArrayList<String> content =new ArrayList<String>();
public void setcountry(ArrayList<String> content)
{
this.content = content;
}
public ArrayList<String> getcountry() { return content; }
}
这是我想要显示数据的jsp页面
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import = "requirementlogic.*" %>
<%@ page import = "java.util.ArrayList" %>
<%VariableIntialization ds_country =(VariableIntialization)session.getAttribute("deshopa_country"); %>
<% ArrayList<String> desham =new ArrayList<String>();
desham = ds_country.getcountry();
<html>
<body>
<form method="get" action="../State" name="location" id="location">
<%if(session.getAttribute("deshopa_country") != null){ %>
<div class="span2"><select name="country_ref" id="country_ref" class="clear">
<%for(int i=0; i<desham.size() ;i++){ %>
<option><%=desham.get(i)%></option>
<%} %>
</select></div>
<%} %>
</form>
</body>
</html>
答案 0 :(得分:0)
这里每次你创建一个新的国家列表,因为它被添加到循环中声明它在你的循环之外,所以结果集被添加到列表中。因为你在里面添加它总是得到一个新的列表只有一个国家的条目