【问题标题】:Select multiple options from hashtable key value in JAVA/JSP从 JAVA/JSP 中的哈希表键值中选择多个选项
【发布时间】:2013-07-05 13:52:46
【问题描述】:

注意:我正在遵循旧 jsp 的 scriptlet 实践。这次请不要逼我用JSTL。

大家好, 我有返回地图类型数据的方法 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:在多项选择中,值可能会不时增加或减少。 这个多重选择将在运行时生成。 请询问我是否需要有关此的更多信息。 谢谢。

【问题讨论】:

  • 地图在 jsp 中是否可用?是指您在 jsp 页面中声明地图的位置?
  • @pikrut 是的,它在 jsp 中可用。
  • 请说明你是如何声明哈希表的。
  • 编辑了我的问题@pikrut
  • bucketTagGroup 将是逗号分隔的字符串,例如 "6, 4, 7"

标签: java jsp hashtable


【解决方案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。这不是好的做法。

【讨论】:

  • 类型不匹配:在Integer key_value : hashtable.keySet()中无法将元素类型Object转换为Integer
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多