WebWork动态填充Select

我们如果想动态的给select下拉菜单添加数据,有两种办法,一种是使用JS,一种是使用代码片段

在Webwork中,我们有了新的方法,在action中构造一个collection,可以使list,map等,然后,指定<ww:select>的list属性就可以了

Action: (我们的list是gao)

 

package  ch11;

import  java.util.ArrayList;
import  java.util.List;

import  com.opensymphony.xwork.ActionSupport;

public   class  ModifyUser  extends  ActionSupport  ... {

    
private User user;
    
private String gaoxiang;
    List gao
=new ArrayList();
    
public ModifyUser()...{
           gao.add(
"1");
           gao.add(
"2");
           gao.add(
"3");
           gao.add(
"gao");
    }

    
public User getUser() ...{
        
return user;
    }

    
public void setUser(User user) ...{
        
this.user = user;
    }

    
public String execute() throws Exception ...{
         System.out.println(gaoxiang);
        
return SUCCESS;
    }




    
public String getGaoxiang() ...{
        
return gaoxiang;
    }


    
public void setGaoxiang(String gaoxiang) ...{
        
this.gaoxiang = gaoxiang;
    }

    
public List getGao() ...{
        
return gao;
    }

    
public void setGao(List gao) ...{
        
this.gao = gao;
    }




}

JSP:

<ww:select label="ga2o" name="gaoxiang" list="gao"/>

 

这样一来,可以看到,select中就是我们定义的1,2,3,gao
<select name="gaoxiang" id="testUI_gaoxiang">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="gao">gao</option>
</select>

如果gao是一个map

 gao.put("1","11");
 gao.put("2","22");

则生成的html是:

<select name="gaoxiang" id="testUI_gaoxiang">
    <option value="2">22</option>
    <option value="1">11</option>
</select>

区别显而易见,就是select的数值合显示值的区别

 



你可能感兴趣的:(html,jsp,Webwork)