Struts2中doubleselect

1.doc中的详细解析

点击打开链接

2.两个简单的例子

<s:doubleselect label="doubleselect test1" name="menu" list="{'fruit','other'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />
<s:doubleselect label="doubleselect test2" name="menu" list="#{'fruit':'Nice Fruits', 'other':'Other Dishes'}" doubleName="dishes" doubleList="top == 'fruit' ? {'apple', 'orange'} : {'monkey', 'chicken'}" />

这里top指的是一级中的处理的对象,而不是一级中显示的数据

3.doubleselect
         务必放在<s:form/>中不然是无法成功的

4.我们来测试一下从stack values中获取数据

图示




新建User.class

package com.zk.sample.example;

public class User{
	private String username;
	private int age;

	public void setUsername(String username){
		this.username = username;
	}
	public void setAge(int age){
		this.age = age;
	}
	public String getUsername(){
		return username;
	}
	public int getAge(){
		return age;
	}
	public User(String username,int age){
		this.username = username;
		this.age = age;
	}
}


这里我们只用到username的属性,age可以不看

在action里

    private Map<String,List<User>> links;
    private List<User>  linksSub;
    public Map<String,List<User>> getLinks(){
        return links;
    }
    public void setLinks(Map<String,List<User>> links){
        this.links = links;
    }

    private List<User> users;
    public List<User> getUsers(){
        return users;
    }
    public void setUsers(List<User> users){
        this.users = users;
    }

users充当一级数据,之后我们通过OGNL拿到username

links当做以username为key,linksSub为值,在一级Users菜单中我们选中一个User,让后用该User的username去links找到对应的二级Users

初始化一下

        users = new ArrayList<User>();
        links = new HashMap<String,List<User>> ();

        for(int i=0;i<10;i++){
            linksSub = new ArrayList<User>();
            for(int j=0;j<10;j++){
                linksSub.add(new User("sub"+i + "_"+j,20+j));
            }
            users.add(new User("Parent"+i,20+i));
            links.put("Parent"+i,linksSub);
        }
        setUsers(users);


由于linksSub是links中的值,所以我们不用给他set和get,我们通过links得到他的引用

在jsp写<s:debug/>

看看堆值和ActionContext

好了我们已经把需要的数据放在stack values中了,下面我们在jsp中通过OGNL得到这些数据

            <s:doubleselect name="username" list='users' listKey="username" 
                            listValue="username" doubleName="name" 
                            doubleList="links.get(top.username)" doubleListKey="username" 
                            doubleListValue="username" />

这些属性不懂的话就点击上面的官方doc解析

书上讲的很粗略,struts2 in action ,写的跟没写没区别



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值