首页 > 技术文章 > struts2 <s:select>标记取包含map的list的值

azhqiang 2014-11-26 10:26 原文

如下list 

map.put("ID","001"); 
map.put ("NM","test1"); 

list.add(map); 

map.put("ID","002"); 
map.put ("NM","test2"); 

list.add(map); 
放于request中 
request.setAttribute("testlist", list);

上面的list生成是首先把列名,列值一对一对放入map,然后再一行一行放入list中.

好像<s:select只能认一层的map,或list>

两种选择,一种就是把生成的list转成一层一map或list,这样很费时.
另外一种选择就是不使用<s:select>标签,而使用传统的标签加<s:iterator>的方式,我选择了后一种.
    <select name="id">
       <s:iterator value="#request.testlist" status="stuts" id="test">
          <option value='<s:property value="#test.ID" />'><s:property value="#test.NM" /></option>
       </s:iterator>  
    </select>
也能达到效果,不知道性能上比<s:select>有没有什么问题,由于这方面要求不是很高,暂时这样吧!

推荐阅读