WebWork动态填充Select

本文介绍如何使用WebWork框架中的<ww:select>标签动态填充下拉菜单选项,支持List和Map类型数据源。
部署运行你感兴趣的模型镜像

我们如果想动态的给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的数值合显示值的区别 

您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

<!-- this macro will render an employee no selector PARAMETERS: fieldName callbackName - callback function name, default will call the field filling funtion. --> <#macro employeeSelector fieldName callbackName="" onChange=""> <#assign ww = JspTaglibs["/WEB-INF/webwork.tld"] /> <#assign base = req.contextPath /> <script type="text/javascript" src="${base}/js/xmlextras.js"></script> <script> var employeeSearchPopup; var windowOptions = "directories=no,location=no,width=700,height=500,alwaysRaised=yes,resizable=yes,scrollbars=yes"; function popupSelector_${fieldName?replace(".", "_")}() { employeeSearchPopup = window.open('${base}/exporthr/index.action', 'employeeSearchPopup', windowOptions); employeeSearchPopup.focus(); <#if callbackName == ""> callback = function (employeeNo){ document.getElementById('${fieldName}').value = employeeNo; employeeSearchPopup.close(); <#if onChange!="">${onChange?if_exists}();</#if> }; <#else> callback = function (employeeNo) { ${callbackName}(employeeNo); }; </#if> } function checkEmployeeNo${onChange?if_exists}(inputField) { var employeeNo = inputField.value; inputField.value = employeeNo.toUpperCase(); var result = "fail"; if(employeeNo != null && employeeNo.length > 0){ var xmlHttp = XmlHttp.create(); var async = false; xmlHttp.open("GET", "${base}/exporthr/checkEmployeeNo.action?employeeNo=" + inputField.value, async); xmlHttp.send(null); if(xmlHttp.responseText != null && xmlHttp.responseText == '<success/>'){ result= "success"; }else if(xmlHttp.responseXML != null && xmlHttp.responseXML.getElementsByTagName("success").length > 0){ result= "success"; }else{ alert("Can not find an employee with the No. " + employeeNo); inputField.focus(); inputField.select(); } }else result= "success"; <#if onChange!="">if(result== "success")${onChange?if_exists}();</#if> } </script> <@ww.textfield name="'${fieldName}'" id="${fieldName}" size="20" theme="'simple'" onblur="'checkEmployeeNo${onChange?if_exists}(this);'"/> <a href="#" onclick="popupSelector_${fieldName?replace(".", "_")}();"><img src="${base}/images/icon_usergroups_sml.gif" align="absmiddle"/></a> </#macro>
最新发布
08-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值