2013-07-08 43 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