0

注: 私は古い jsp のスクリプトレット プラクティスに従っています。今回は JSTL を使用するように強要しないでください。

やあ、私はMapタイプのデータ hashtable.keySet()リターンリターン[8, 5, 2] hashtable.entrySet()を返すメソッドを持っています[8=ad, 5=asxd, 2=asdas]

そして、私はjspで複数を選択しています。この MAP キー値を使用して Select オプションを生成したいと考えています。このような

<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> 

編集:これが私のMapタイプのメソッドです

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: 複数選択では、値が時々増減する場合があります。この複数選択は実行時に生成されます。これについてさらに情報が必要な場合は、私に尋ねてください。ありがとう。

4

1 に答える 1

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 を実行しないようにしてください。これは良い習慣ではありません。

于 2013-07-08T09:53:51.720 に答える