- 浏览: 1419821 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
四、下拉框数据获取方法的源代码
public String findOptions() throws Exception{ String entityName = getRequest().getParameter("_ENTITY"); String keyField = getRequest().getParameter("_KEY"); String descField = getRequest().getParameter("_DESC"); String orderBy = getRequest().getParameter("_ORDER_BY"); StringBuffer sb = new StringBuffer(""); sb.append("from " + entityName); Map paramMap = RequestUtil.getParameterMap(getRequest(), "_CHAIN_PARAM_"); if(paramMap.keySet().size() > 0){ int paramCount = paramMap.keySet().size(); int count = 0; for(Iterator it=paramMap.keySet().iterator();it.hasNext();){ count++; if(count == 1){ sb.append(" where "); }else{ sb.append(" and "); } String key = (String)it.next(); String value = String.valueOf(paramMap.get(key)); if(CommonUtil.isEmpty(value) || value.equals("null")){ sb.append(key.replaceFirst("_CHAIN_PARAM_", "") + " is null "); }else{ sb.append(key.replaceFirst("_CHAIN_PARAM_", "") + "='" + value + "' "); } } } if(CommonUtil.isNotEmpty(orderBy)){ sb.append(" order by " + orderBy); } System.out.println(sb.toString()); List optionsList = getBaseService().find(sb.toString()); getValueStack().set("optionsList", optionsList); getValueStack().set("keyField", keyField); getValueStack().set("descField", descField); return SUCCESS; }
五、JS源代码
//下拉框联动选择事件 var chainSelectEvents = new Array(); function addInitChainSelectEvent(e){ chainSelectEvents[chainSelectEvents.length] = e; } window.onload = function(){ for(var i=0; i<chainSelectEvents.length; i++){ eval(chainSelectEvents[i]); } } function chainSelect(selectName, paramStr){ var objSelect = document.all[selectName]; if(objSelect == null) return; var entityName = objSelect.entityName; var keyField = objSelect.keyField; var descField = objSelect.descField; var orderBy = objSelect.orderBy; var childSelectName = objSelect.childSelectName; var currentValue = objSelect.currentValue; var allowEmpty = objSelect.allowEmpty; //构造URL var url = "findOptions.action?_ENTITY=" + entityName + "&_KEY=" + keyField + "&_DESC=" + descField; if(orderBy != null && orderBy.length > 0) url += "&_ORDER_BY=" + orderBy; if(paramStr != null && paramStr.length > 0) url += "&" + paramStr; //Ajax jQuery.get(url, function(data){ jQuery("select[name=" + selectName + "]").empty(); var initIndex = 0; if(allowEmpty == "true"){ initIndex = 1; jQuery("select[name=" + selectName + "]").append("<option value=''></option>"); } var xmlObject = new ActiveXObject("MSXML.DOMDocument"); xmlObject.async = false; xmlObject.loadXML(data); //fill data into select var selectedIndex = 0; jQuery(xmlObject).find("option").each(function(i, n){ var key = jQuery(n).attr("key"); var desc = jQuery(n).attr("description"); objSelect.options[i+initIndex] = new Option(desc, key); if(key == currentValue) selectedIndex = i+initIndex; }); objSelect.options[selectedIndex].selected = true; //chain child select if(childSelectName != null && childSelectName.length > 0){ bindChangeFunction(selectName, childSelectName); } }); } //绑定onChange事件 function bindChangeFunction(selectName, childSelectName){ jQuery("select[name=" + selectName + "]").bind("change", function(){ var parentKey = jQuery("select[name=" + selectName + "]:first").val(); var params = jQuery("select[name=" + childSelectName + "]:first").attr("params"); var pStr = params.replace("#PARENT_KEY#", parentKey); chainSelect(childSelectName, pStr); }); jQuery("select[name=" + selectName + "]").trigger("change"); }
六、下拉框数据模板源代码
<?xml version="1.0" encoding="UTF-8"?> <options> <#list optionsList as item> <#assign key = "item.${keyField}"> <#assign desc = "item.${descField}"> <option key="${key?eval}" description="${desc?eval}"/> </#list> </options>
发表评论
-
在Struts2中对Ajax请求的异常进行统一处理
2016-04-18 18:32 6841、自定义异常类 public class AjaxExc ... -
struts2原理
2015-10-15 22:00 723一个Struts2请求处理的步骤大致如下: 1、 ... -
struts2 + poi 数据导出excel
2013-03-18 17:47 1509java源码: import java.io.ByteAr ... -
在Freemarker中使用JSP标签库
2010-06-02 17:24 7050Freemarker作为Struts2的其中一种结果类型,可以 ... -
Struts2 Convention插件的使用
2010-05-17 23:58 72581、常量说明 struts.convention ... -
学习笔记:杂项
2010-04-23 20:40 2723一、在web.xml文件配置Str ... -
Struts2插件的开发
2010-04-21 21:16 3240一、插件类 /** * 使用Struts2的Plugin ... -
读书笔记:Struts2拦截器
2008-11-10 21:19 15321、拦截器相关基础类 Interceptor接口 ... -
自定义标签:联动下拉框(一)
2008-10-26 12:22 3417该标签主要实现以下功能:当父下拉框的当前值发生变化时 ... -
基于Struts2的通用文件上传实现(二)
2008-10-25 11:36 2552四、Action配置 <action name=&quo ... -
自定义标签:下拉框月份选择控件
2008-10-21 22:17 2863一、标签源代码 public class CalendarMo ... -
自定义标签:下拉框年份选择控件
2008-10-21 22:13 5691一、标签源代码 public cl ... -
基于Struts2的通用文件上传实现(一)
2008-10-21 21:19 5802该文件上传实现可以限制上传文件的类型,限制上传文件的最 ... -
自定义标签:分页标签
2008-10-21 09:58 4557一、标签类源代码 public class PageNavig ... -
自定义标签:在JSP页面中动态执行Spring Bean的方法
2008-10-06 13:37 6145使用该自定义标签,可以在JSP页面中动态执行某个Sp ... -
Struts2标签的使用
2008-09-25 12:36 18981、iterator标签:用于对集合进行迭代 &l ...
相关推荐
asp二级联动下拉框,三级联动下拉框,asp二级联动下拉框,三级联动下拉框, 可能传错了 sorry
在WinForm界面上,采用自定义ComboBox控件实现在下拉框中显示颜色列表。本程序在VS2008下编译通过。
自定义多选下拉框标签,只需引用标签即可实现多选下拉框,可以传入参数来改变样式等
Android 自定义下拉框的实现,效果可到http://www.cnblogs.com/awe061/p/5221145.html查看
jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框jquery 三级联动下拉框
js2级省市联动下拉框js2级省市联动下拉框js2级省市联动下拉框js2级省市联动下拉框
JQuery实战第五讲:级联下拉框效果,如果用在《MVC中更加合适
jQuery自定义下拉框 jQuery自定义下拉框网页特效.zip
省市下拉框二级联动完成版(调试通过),本人花了几小时整理的,觉得是完整版。并且立即可以使用!
自定义-js模仿下拉框效果 测过IE6/7/8 ff5.0 chremo 12.0. 是用li来模仿的,隐藏存在一个select方便form提交,其实既然只是获取选定后的数据,也可以用隐藏的input:text 代替 (如果出现什么异常可以给本人留言)
html中默认的select太丑了,使用jquery+html自定义下拉框。样式随心所欲。
Custom Controls C# WinForm 自定义ComboBox 显示颜色下拉框,在WinForm界面设计方面,采用自定义的ComboBox控件实现下拉框可选择颜色列表。可显示颜色小方块,源代码可在VS2008下编译通过。
javascript实现二级联动下拉框,多多支持:)
Qt Quick自定义下拉框Combobox
这里是基于layui开发的省市区三级联动下拉框这里是基于layui开发的省市区三级联动下拉框这里是基于layui开发的省市区三级联动下拉框
主要介绍了Android实现联动下拉框二级地市联动下拉框功能,本文给大家分享思路步骤,给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
jquery动态创建联动下拉框和jquery动态创建下拉框
C# 自定义带搜索下拉框,和系统自带下拉框用法一样,但是加了搜索功能
AJAX版省市区三级联动下拉框
mvc3二级联动下拉框,省下了不少力气.。。。