2013-07-08 44 views
0

注意:我遵循舊的jsp的腳本練習。請不要讓我這次使用JSTL。從JAVA/JSP中選擇hashtable鍵值中的多個選項

大家好,我 有方法,它返回地圖類型的數據 hashtable.keySet()返回[8, 5, 2] hashtable.entrySet()回報[8=ad, 5=asxd, 2=asdas]

然後我在JSP中選中多個。 我想使用這個MAP鍵值生成選擇選項。 這樣

<select id="XX" name="XX" class="left" multiple="multiple"> 
    <option id="opt1" value="8">ad</option> 
    <option id="opt2" value="5">asxd</option> 
    <option id="opt3" value="2">asdas</option> 
</select> 

編輯:這是我的地圖類型的方法

public Map<Integer, String> getRuleTag(String bucketTagGroup) { 
      logger.debug("Start Of getRule Rule"); 


      Map<Integer, String> x = new Hashtable<Integer, String>(); 
      try 
      { 
       //System.out.println(rs.getString("inbuckets")); 
       String[] a = bucketTagGroup.split(", "); 
       for(int i = 0;i<a.length;i++){ 
       //System.out.println(a[i]); 
        int tagid = Integer.parseInt(a[i]); 
        String sql1 = "select bucketchargetag from IDC.BCTCHRTAG where tagid = ?"; 
        java.sql.PreparedStatement p = conn.prepareStatement(sql1); 
        p.setInt(1, tagid); 
        ResultSet rs1 = p.executeQuery(); 
        while(rs1.next()){ 
         //System.out.println(rs1.getString("bucketchargetag")); 
         x.put(tagid, rs1.getString("bucketchargetag")); 
         //System.out.println(x.entrySet()); 
        } 

       } 
      logger.info(x.keySet().toString()); 
      } catch (SQLException e) { 
       logger.debug(e.getMessage()); 
      } 
      return x; 
     } 

PS:值可以增加或多個選擇減少時有發生。 這個多重選擇將在運行時生成。 請問我是否需要更多信息。 謝謝。

+0

是地圖可用於jsp嗎?是指你在哪裏聲明它的地圖是在jsp頁面? – pikrut

+0

@pikrut是它在jsp中可用的。 – AzAh

+0

請說明你是如何聲明散列表的。 – pikrut

回答

1
<select id="XX" name="XX" class="left" multiple="multiple"> 
<%for(Integer key_value : (Integer)hashtable.keySet()){%> 
    <option id="<%=key_value%>" value="<%=key_value%>"><%=hashtable.get(key_value)%></option> 
<%}%> 
</select> 

試試這個。並儘量避免在jsp中執行sriptlets。這不是很好的做法。

+0

類型不匹配:無法從元素類型Object轉換爲Integer key_value:hashtable .keySet()' – AzAh

+0

只需要一個類型轉換。 – pikrut