struts2 select标签

项目中遇到个小问题,总结下。

关于struts2 select标签的使用。

struts2 中从别的表中遍历数据 填充进入下拉菜单 用<s:select>标签显示.

struts2的版本为2.1.8

<s:select 
      list=""
      name=""
      value=""
      headKey=""
      headValue=""
      listKey=""
      listValue=""
/>

(1)其中 list是必须具备的属性 list中可以存储map list set类型的数据

list属性:通常是在action中定义的,必须是一个可以迭代的源,如为一个List, Map, Set等。如果是一个Map,那么map的key就对应于select标签中的value,map中的value就对应于select标签中的option。而如果是一个List或者是一个Set,那么可以通过listKey和listValue指定。

(2)如果list为空headKey 和headValue不能为空.listKey和listValue:listKey即对应于select标签中的value, listValue即对应于select标签中的option

(3)name属性:即是表单中select的名称。

下面具体解释下各个属性的含义。

headerValue : 默认值value
headerKey :    默认name
list : 源数据 (可以在action方法里从数据库获取list)
name : 被选数据存放的位置(这里我方在对象obj的属性值userName中<需在action中定义该对象>)
listKey : 下拉选项的name
listValue : 下拉选项的value
value : 默认值

 代码清单1:添加数据

<s:select name="other_Message.wise_id"
          list="#session.wise" key="选择方式" 
          headerKey="#session.wise.key" 
          headerValue="请选择方式" 
          value="#session.wise.value">

代码清单2: 通过查询获得其他数据 

public String queryAllWise(){
		list = wiseBusiness.queryAllWise() ;
        AOLContext context =AOLContext.getContext();
        Map<Integer,String> wiseMap= new HashMap<Integer,String>();
       for (int i = 0; i < list.size(); i++) {
    	Wise wise=(Wise)   list.get(i);
		wiseMap.put(wise.getWise_id(), wise.getWise_fame());
		
	}
        context.getSession().put("wise", wiseMap);
    	return null;
	}

备注:

           1.这里也可以用List实现,因为用Map前台处理简单些,所以我封装了成Map类型

           2. AOLContext是我对获得request对象 session对象 以及Map类型对象的帮助类 

         

代码清单3: 修改时显示默认值

<s:select name="other_Message.wise_id" 
         list="#session.wise" key="选择方式"  
         headerValue="other_Message.wise_id" >
</s:select>


 总结:一句话,遇到问题,要分析清楚了,再百度。

你可能感兴趣的:(struts2,标签,select)