<s:set name="items" value="#{'0':'全部' , '1':'姓名', '2':'用户名', '3':'部门', '4':'用户组'}"></s:set>
页面声明这个变量,我只想要前3个变量,怎么利用?号这个进行操作,得到他的子集

解决方案 »

  1.   

    <s:subset source="#items" count="3">
       <s:iterator>
           <s:property value="key"/>
           <s:property value="value"/>
       </s:iterator>
    </s:subset>
      

  2.   

    我是有条件判断的,条件是action传递过来的
      

  3.   

    例如把,我有可能传过来个1 ,然后我要除去1的子集,key 是1 ,有可能是2 ,3 4 ,都有可能
      

  4.   

    LZ的要求能实现,只不过不能用Map。
    要把要在Action中以List<BeanName>的形式组织数据。例:1>.SST005Form是个JavaBean:
    public class SST005Form { private String id;
    private String name; public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getId() {
    return id;
    }
    public void setId(String id) {
    this.id = id;
    }
    }
    2>.在Action组织数据:
    public List<SST005Form> getItems() { List<SST005Form> lst = new ArrayList<SST005Form>();
    SST005Form bean = null; bean = new SST005Form();
    bean.setId("0");
    bean.setName("全部");
    lst.add(bean); bean = new SST005Form();
    bean.setId("1");
    bean.setName("姓名");
    lst.add(bean); bean = new SST005Form();
    bean.setId("2");
    bean.setName("用户名");
    lst.add(bean); bean = new SST005Form();
    bean.setId("3");
    bean.setName("部门");
    lst.add(bean); bean = new SST005Form();
    bean.setId("4");
    bean.setName("用户组");
    lst.add(bean); return lst;
    }
    3>.Jsp写法:
    <s:iterator value="items.{?#this.id != #request.test}" status="ss">
       <s:property value="id"/>
       <s:property value="name"/>
    </s:iterator>
    注:test是从Action传递过来要过滤的属性。