【问题标题】:fill select in struts2struts2中的填充选择
【发布时间】:2014-07-25 06:02:21
【问题描述】:

我正在尝试用这种方法填充我的 struts2 选择,但我得到的只是空的 落下。这是我的行动方法

private List<String> districtList = new ArrayList<String>();


public String get_DistrictList(){         
    try{
        currentCon = ConnectionManager.getConnection();
        Statement stmt = (Statement) currentCon.createStatement();          
        rs = stmt.executeQuery("SELECT district_id, district_name FROM district");
        while(rs.next())                
            districtList.add(rs.getString("district_name"));
           districtList.add(rs.getString("district_id"));


    }catch(Exception e){
        System.out.println("Error From DAO:" + e);
    }   
    return SUCCESS;
}

我的jsp

 <s:select label="Select District" 
                   id="district_list"
                   headerKey="-1" headerValue="Select District"
                   list="districtList" listKey="district_id" listValue="district_name"
                   tooltip="Select District"        
                   name="notaryposition.district" />

当我在 DistrictList 中仅使用单个添加并删除 listKey 和 listValue 时,它​​工作正常,但我希望在我的选择中同时使用键和值。有什么办法吗?

提前致谢:)

【问题讨论】:

  • 你是否在控制器中为 DistrictList 生成了 setter 和 getter?

标签: java list jsp select struts2


【解决方案1】:

您可以使用地图

来做到这一点
private Map<String, String> districtMap;

/**Setters and getters for Map*/

public String get_DistrictList(){   
    districtMap = new HashMap<String, String>();      
    try{
      .
      .
      .
      while(rs.next())                
        districtMap.put(rs.getString("district_name"), rs.getString("district_id"));
      .
      .
    }catch(Exception e){
     System.out.println("Error From DAO:" + e);
  }   
  return SUCCESS;
}

并且为上面的 Map 生成 setter 和 getter。和

JSP

Reference for Select using Map

 <s:select label="Select District" 
    id="district_list"
    headerKey="-1" headerValue="Select District"
    list="districtMap" listKey="key" listValue="value"
    tooltip="Select District"        
    name="notaryposition.district" />

【讨论】:

  • 感谢您的回复,但它给了先生这个错误:请求的列表键 'districtMap' 无法解析为集合/数组/映射/枚举/迭代器类型
  • 制作private Map&lt;String, String&gt; districtMap; 并生成setter 和getter。 :)
  • 感谢您抽出宝贵时间。我确实尝试过私有地图 DistrictMap;观看您之前的链接,但这不起作用。和 ofcos 我已经在网上搜索了 mkyong 但找不到答案。我认为不是 map ArrayList 可以解决问题
【解决方案2】:

试试这个,这是获取id,name %{district_id} &amp; %{district_name}的方法

private List<District> districtList = new ArrayList<District>();
try{
    ........
     District district_object=new District();  //Create Object District Class
     while(rs.next()){

            district_object.setDistrictName(rs.getString("district_name"));
            district_object.setDistrictId(rs.getString("district_id"));
            districtList.add(district_object);
                     }
     .........
   }catch(Exception e){ sout }

成功.jsp

     <s:select label="Select District" 
               id="district_list"
               headerKey="-1" headerValue="Select District"
               list="districtList" 
               listKey="%{district_id}"    
               listValue="%{district_name}"
               tooltip="Select District"        
               name="notaryposition.district" />

【讨论】:

  • 感谢您的回复。我认为这是正确的做法。我拿了一个
    并在调用此方法的操作中,但下拉列表为空。我们需要在哪里调用动作?以便下拉列表填充页面加载
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多