<s:doubleselect>联动下拉框转<c:select>标签

doubleselect标签为sturt标签库里的双级联动下拉框,具体用法查看官方文档。

/**一级下拉框从List中选择enetity实体,
二级下拉框根据实体的enetity.cls属性选择对应的entity.attrList
封装如下**/
List<Entity> list = ruleSetHandler.getEntities(ruleSet);// your lists;
Map<String, List<Attribute>> map = new HashMap<String, List<Attribute>>();
if (list != null && !list.isEmpty() && list.size() > 0) {
	for (Entity entity : list) {
		map.put(entity.getCls(), entity.getAttrList());
	}
 }

//这是s标签的用法实现的二级联动。
<s:doubleselect id="entityName" name="entityName"  list="#request.entities"  
		        listKey="note"  
		        listValue="note" 
		        doubleList="#request.entitiesMap[top.cls]"
		        doubleId="attrName"  
		        doubleName="attrName"  
		        formName="form1"
		        headerKey=""
		        headerValue="%{getText('Please.select')}"
		        doubleHeaderKey=""
		        doubleHeaderValue="Please select"
		        doubleListKey = "attr"
		        doubleListValue="note"
		    /> 


在实际项目中,常常面临项目升级、迁移、改造等,在不改动后端代码的情况下,将s标签的联动显示该为c标签的联动显示,代码如下


<script language="javascript">
$(function() {
    
    $("#entityName").change(function() {
        $("#attrName").empty(); //清空二级下拉框
        $("#attrName").val("please choose");
        var entityNameNote = $("#entityName").val(); // 一级菜单的值
        var cls = $("#entityName").find("option:selected").attr("cls");
        //console.log(entityNameNote+","+cls);
        <c:forEach var="item" items="${entitiesMap}">
        //console.log("属性:" + "${item.key}" +"值:" + "${item.value}");
            /* <c:forEach var="item1" items="${item.value}">
            </c:forEach> */
            if(cls=="${item.key}"){
                <c:forEach var="item1" items="${item.value}">
                $("#attrName").append("<option value='${item1.attr}'>${item1.note}</option>"); 
                </c:forEach>    
            }
        </c:forEach>
    });
});
</script>
 <select id="entityName" name="entityName" >
     <option>———— 请选择 ————</option>
    <c:forEach var="item" items="${entities}">
     <option value="${item.note}" cls="${item.cls}"><c:out value="${item.note}"/></option>
     </c:forEach>
 </select>
<select  id="attrName" name="attrName"  >
  <option>———— 请选择 ————</option>
</select>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值