我使用hashmap并将其存储在jsp页面中,但是我在jsp页面中仅获得一行数据
System.out.println("connection established successfully...!!");
ResultSet rs=st.executeQuery("Select SEC_NO,FACT_NO from sec where FACT_NO='B07C'");
if (!rs.next() ) {
request.setAttribute("stts", "0");
}
else {
HashMap<String, String> arrList = new HashMap<String, String>();
do
{
String SEC_NO = rs.getString("SEC_NO");
String FACT_NO = rs.getString("FACT_NO");
arrList.put("sec_no", SEC_NO);
arrList.put("fact_no", FACT_NO);
System.out.println("Hasil : " + arrList);
}while(rs.next());
request.setAttribute("datas", arrList);
request.setAttribute("stts", "1");
}
}
catch (Exception e){
System.out.println(e);
}
helper = new ControllerHelper(request, response);
helper.doGet("grafik/grafik.jsp");
可能是什么问题?
答案 0 :(得分:0)
就像 Jason 说的那样,您可以通过以下键在Hashmap中添加值 每次迭代“ sec_no” 和“ fact_no” 。
如我所见,您有3个变体。 1-使用不同的键(如
)添加 SEC_NO 和 FACT_NOHashMap<String, String> arrList = new HashMap<String, String>();
int i=0;
int j=0;
do
{
String SEC_NO = rs.getString("SEC_NO");
String FACT_NO = rs.getString("FACT_NO");
arrList.put(i, SEC_NO);
arrList.put(j, FACT_NO);
System.out.println("Hasil : " + arrList);
j=i+1;
i=i+2;
}while(rs.next());
2-使用MultiValueMap,您可以在1个键上添加多值。
3-例如,将每次迭代的值添加到List中,并且在所有迭代之后,您将能够进行
HashMap<String, List> arrList = new HashMap<String, List>();
arrList.put("sec_no", list1);
arrList.put("fact_no", list2);
其中list1和list2已经具有值
答案 1 :(得分:0)
您正在通过循环覆盖HashMap
键:
HashMap<String, String> arrList = new HashMap<String, String>();
do
{
String SEC_NO = rs.getString("SEC_NO");
String FACT_NO = rs.getString("FACT_NO");
arrList.put("sec_no", SEC_NO); //Overwriting
arrList.put("fact_no", FACT_NO); //Overwriting
System.out.println("Hasil : " + arrList);
}while(rs.next());
因为您一直HashMap
中只有两个键。
最好为您的HashMap
设置唯一的键值,如下所示:
HashMap<Integer, String> arrList = new HashMap<Integer, String>();
int i=0;
int j=1;
do
{
String SEC_NO = rs.getString("SEC_NO");
String FACT_NO = rs.getString("FACT_NO");
arrList.put(i, SEC_NO);
arrList.put(j, FACT_NO);
System.out.println("Hasil : " + arrList);
i++;j=i+1;
}while(rs.next());
或者(我不确定您要使用哪种方法)可以使用STRING,STRING HashMap
:
HashMap<String, String> arrList = new HashMap<String, String>();
int i=0;
do
{
String SEC_NO = rs.getString("SEC_NO");
String FACT_NO = rs.getString("FACT_NO");
arrList.put("sec_no_"+i, SEC_NO);
arrList.put("fact_no_"+i, FACT_NO);
System.out.println("Hasil : " + arrList);
}while(rs.next());
或二手MultiValueMap
。