- 浏览: 1193960 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (434)
- js (20)
- struts2 (77)
- spring (11)
- hibernate (17)
- ssh整合 (9)
- 程序例子 (4)
- 正则表达式 (8)
- JSP (20)
- IDE (15)
- 数据库 (10)
- 工作经验技巧感悟 (21)
- 程序员的幽默 (4)
- windows设置 (4)
- 名词解释 (4)
- 技术入门 (4)
- jFreeChart (16)
- OGNL (5)
- java基础 (46)
- dwr (4)
- portal (1)
- 示例用到的附件 (0)
- 优秀程序员45个习惯 (1)
- webService (1)
- shell (3)
- ibatis (3)
- 开发工具 (1)
- OS (3)
- xmlbean (2)
- design_pattern (0)
- error (1)
- testng (2)
- python (18)
- hadoop (21)
- mapreduce (9)
- Hive (0)
- HBase (0)
- ubuntu (22)
- 多线程 (7)
- 自我改进 (6)
- 设计模式 (1)
- ssh (2)
- ant (4)
- guake (2)
- 云计算 (9)
- hdfs (3)
- 大数据 (1)
- 电信业务 (1)
- maven (2)
- svn (5)
- UML (1)
- 待处理问题 (2)
- log4j (1)
- css (1)
- LevelDb (0)
- thrift (6)
- 辅助工具 (3)
- 算法 (1)
- tornado (0)
- twisted (1)
- jvm (0)
- 图书 (1)
- 其他 (1)
- oracle (2)
- mvn (1)
- 私人信息 (0)
- nio (1)
- zookeeper (1)
- JavaIO (3)
- mongodb (1)
- java-高级 (6)
- spring-深入 (1)
- tomcat (1)
- quartz (1)
- 面试题 (1)
- redis (3)
- EJBCA (0)
- spring-3.0 (1)
- memcache (3)
- 性能检测 (1)
- android (0)
- 开源项目 (1)
- 将博客搬至CSDN (0)
- 架构之路 (1)
最新评论
-
pjwqq:
“子类对象”都拥有了“父类对象的一个实例的引用”我晕,应该是“ ...
java继承--父类属性的存放位置 -
gwgyk:
关于楼主最后的问题,我想可能是这样:InputFormat默认 ...
eclipse 运行hadoop wordcount -
fanjf:
上述7点基本具备,可惜现在因为项目需要,做管理方面工作!
如何判断自己是否具有成为一名优秀程序员的潜质 -
摸爬滚打NO1:
链接已经失效
Eclipse添加JSEclipse 插件(js插件) -
younglibin:
看了以上7条, 自己 也不知道是否能够对上, 感觉没一点都有那 ...
如何判断自己是否具有成为一名优秀程序员的潜质
今天遇到一个问题:
有三个下拉列表,分别是:消息大类,消息中类,消息小类;要用级联的方式展现:如图:
当选择 消息大类 时 ,刷出消息中类,内容只包含 大类选择条件下的类型!同理 选择中类 刷出小类!
(注意这里的下拉列表的值 是从数据库中查出来的,不是写死在html;
从数据库中查出来的数据,特别是中类和大类难免有些重复现象,怎么取出重复呢?看这里(使用map转换整理中)
)
下面用两种方法来介绍 下拉列表级联:
1.dwr方式:
具体的dwr配置请看:
下面只介绍级联用到的js:
function getChild(pareantType,childType){ if(pareantType==null||pareantType.length<1) // parentType:当前下拉列表的参数(可更具自己的查询条件,传值【可以是选中的code,或type....】) //childType:要刷出子列表的 参数(同上) { return; } try { var id = document.getElementById(pareantType).value; MsgTypeService.getMsgType(id,childType,function(data) // id : 查询使用到的条件,更具自己的Service用的参数,可以传零到多个 // data: service放回的list 也就是子列表中显示的数据了 { if(data!=null) { var oBtsTypeNumber=document.all(childType); while( oBtsTypeNumber.childNodes.length>0) { oBtsTypeNumber.removeChild(oBtsTypeNumber.childNodes(0)); } var op= document.createElement("Option") op.value=""; op.text="--全部--"; oBtsTypeNumber.add(op); //这里是将 子列表中数据清空 for(i=0;i<data.length;i++) { var no=document.createElement("Option"); //为子列表添加数据,遍历 no.value= data[i].code; no.text = data[i].midType; //注意这里的 code 和midType这两个值,是 ,返回 list 的泛型(的两个字段),并且,在配置dwr.xml时要注意,和泛型相一致,否则会出现,code或midType为空或不是对象的错误警告! oBtsTypeNumber.add(no); if("${pareantType}"==data[i].midType){ no.selected="true"; } } } }); } catch(e) {} }
,解释一下:返回list的泛型:
dwr.xml:
<convert converter="bean" match="com.iman.nrms.nrmwns.prm.message.domain.model.MsgType"/> // com.iman.nrms.nrmwns.prm.message.domain.model.MsgType dwr 调用返回list 的泛型 <create creator="spring" javascript="MsgTypeService"> <param name="beanName" value="msgTypeService"/> <include method="getMsgType"/> <include method="getMsgMidType"/> </create> 在哦jsp页面代码中 用到的 code 和midType 都是 MsgType 这个po中的属性!,根据自己的需要!再在这里配置!
下面就是掉 dwr的方法了:
<td width="4%" rowspan="3"><img src="${path}/page/wrm/image/search.gif" width="40" height="39"></td> <td nowrap="nowrap">消息大类</td> <td> <s:select list="msgBigTypeList" name="msgType.bigType" onchange="getMidType('bigType','midType');" id="bigType" cssClass="select" headerKey="" headerValue="--请选择--" listKey="code" listValue="bigType"></s:select> </td> <td nowrap="nowrap">消息中类</td> <td> <s:select list="msgMidTypeList" name="msgType.midType" onchange="getSmlType('midType','smlType');" id="midType" cssClass="select" headerKey="" headerValue="--请选择--" listKey="code" listValue="midType"></s:select>
方法2:(推荐使用方法)
这个方法首先要为每一个 </td>下拉列表写一个 function();
这里用到了三个下拉列表,级联了两次,就要写两个:
/** 大类与中类级联 */ function getMidType(parentValue,childName){ var url= "${path}/message/getMidTypeByBigType.action"; var propertyName = "midType"; fnGetChildValueList(parentValue , childName , url , propertyName ); } /** 中类与小类级联 */ function getSmlType(parentValue , childName ) { var url= "${path}/message/getSmlTypeByMidType.action"; var propertyName = "smlType"; fnGetChildValueList(parentValue , childName , url , propertyName); } /** * 下拉框级联 * @param {Object} parentValue * @param {Object} child 必须在当前页面的第一个Form表单中的name属性或者下拉框对象的id * @param {Object} url * @param {Object} propertyName * @param {String} callBack //结束后,要调用的函数名 */ function fnGetChildValueList(parentValue , child , url , propertyName ) { if(!parentValue||!child) { return; } var oChild = document.forms[0][child]; if(typeof oChild != 'undefined') { try{ oChild = $(child); }catch(e){return;} if(!oChild){ return; } } var ops=oChild.options; while(ops.length>0){ oChild.remove(ops.length-1); } var oOption = document.createElement("OPTION"); oOption.setAttribute("text","请选择"); oOption.setAttribute("value",""); oChild.add(oOption); ajax.sendPostRequest(url , propertyName + "=" + encodeURI(encodeURI(parentValue)) ,function(result){ eval("var keyValueList="+result.responseText); for(var i=0; i<keyValueList.length; i++) { var keyValue=keyValueList[i]; var oOption = document.createElement("OPTION"); oOption.setAttribute("text",keyValue.value); oOption.setAttribute("value",keyValue.key); oChild.add(oOption); } }); }
注意这里用到的:keyValueList
要在Action中包装:
public String getMidTypeByBigType(){ try { msgMidTypeList = this.msgTypeService.getMidTypeByBigType(java.net.URLDecoder.decode(midType, "UTF-8")); List<KeyValue> keyValueList = new ArrayList<KeyValue>(); if (msgMidTypeList != null) { for (MsgType c : msgMidTypeList) { keyValueList.add(new KeyValue(c.getCode(), c.getMidType())); } } // 向客户端直接输出文本数据 renderText(keyValueList.toString()); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; }
发表评论
-
struts2 学习资料
2013-10-08 12:23 920struts2.0 系列文章 http://www.blo ... -
javaweb项目RuntimeException不能默认打印到控制台
2012-11-26 15:46 3016前几天搭建了一个框架: 配置 struts2 spring2 ... -
jsp页面用s:datetimepicker不显示时间下拉框(提示dojo未定义错误)
2010-01-15 09:49 5760在写时一定要加上:form 标签外加上<s:head t ... -
struts2中struts.xml 文件详解(中文版翻译)入门篇
2009-12-21 11:15 2081<!DOCTYPE struts PUBLIC &quo ... -
Struts2中的(Interceptor)拦截器的执行顺序
2009-12-10 15:00 5914Interceptor的接口定义没 ... -
Struts2中的拦截器的内部结构
2009-12-10 14:44 1479让我们再来回顾一下之前我们曾经用过的一张Action Life ... -
struts2 中Action的生命周期
2009-12-10 14:40 1795接下来,我们再来看看Struts2中的Action的生命周期: ... -
Struts2的Action并不带有任何Web容器相关的对象,Action又是如何工作在Web容器中
2009-12-10 14:39 2107虽然Struts2的Action只是一 ... -
Struts2中的Action 定义
2009-12-10 14:38 1319多数的MVC框架中的Control层,都是一个Java对象。按 ... -
struts2中Action的五大元素
2009-12-10 14:23 2591在大概了解了Struts2的Action后,我们来重点研究一下 ... -
jsp 向Action传值(不提交committ 也能传值)
2009-12-05 09:45 3792今天发现 当药提交表单是 页面的 字段 在Action接收不 ... -
struts2 Tooltip和radio 还有关系吗?
2009-10-12 17:19 1746今天遇到一个奇怪的问题,拿来大家看看! 我用stru ... -
jsp向action传值的几个错误一点
2009-09-23 08:36 15861. 在jsp页面首次请求时正确!通过查询可以正确显示数 ... -
struts2 标签展示 map
2009-09-21 17:59 2231从数据库中查找出来的 ... -
struts2 标签展示 map
2009-09-21 17:48 2669在jsp页面用iterator 迭代时,如果 list中放的是 ... -
struts.properties 配置解析
2009-09-11 10:45 2019### struts.properties这是一 ... -
Struts1和Struts2的区别和对比
2009-09-11 10:05 1557? Struts1要求Action类继承 ... -
el表达式函数
2009-09-11 09:48 1243<%@ taglib prefix="fn&q ... -
struts2 手动校验原理图解
2009-09-02 10:37 16921、Struts 2的类型转换器负责对客户端的字 ... -
struts2 校验器——正则表达式校验器(regex)(内建校验器)
2009-09-02 10:19 5079正则表达式校验器的名称:regex,他检查被校验字段是否匹配一 ...
相关推荐
AJAX-DWR下拉框级联AJAX-DWR下拉框级联 真正实用的`仅供参考
这是一个级联菜单,使用ajax技术,采用了dwr框架,选择省份,城市自动加载,以此类推,可以实现多种级联效果
Ajax的dwr框架实现级联源码,大家有用到的可以看一下
刚学dwr 自己写的三级联动下拉框 DWR版本 3.0 数据库 Ms SQL 2005 环境 Myeclipse 8.x 有问题联系 :Mr .陈 MSN czw30110@hotmail.com
DWR AJAX 级联下拉菜单,动态调用远程方法
实战技巧:级联下拉列表 使用responseXML处理返回的XML信息 实战技巧:获取元对象数据 实战技巧:处理列表数据 实战技巧:处理级联的数据 实战技巧:保存更新数据 在普通文本和XML文档之间权衡 何时返回普通文本 ...
用DWR实现AJAX的联动下拉列表,是DWR的基本操作,版本为DWR2
现在流行的ajax视频教程,几个示例包括用户名验证,级联菜单,dwr框架的应用~是exe格式的
dwr是一组可复用并且结合得很好的Java/JavaScript包.它通过AJAX来轻松转变你web应用程序的交互方式.它带的一些组件包括可以自动补全的文本框架,动态级联下拉列表,动态表单等
下载放到Myeclips里就可以运行、里面包含struts2环境搭建(点击按钮)、struts2+dwr整合(在文本框中输入值后会访问后台,给select动态增加option赋值、点击按钮又会显示会select被选中的option的value和text值)、...
里面主要涉及到: 1,dwr的配置; 2,用户名唯一性检测; 3,回调函数怎样的到实体Bean,js分页; 4,select实现级联。 更多功能在里面。。。。。
struts2+dwr整合实例,在文本框中输入值。会到后台查询,给select标签赋值,要是想实现级联下拉框,我想你看完应该能做出来。
用DWR实现的一个AJAX级联下拉框,数据从XML文件读取
这个Ajax联动殊不知和这些框架有什么关系,一个小Demo干嘛整得那么大。 今天我做了一个dwr+jsp做的例子。 web.xml: 代码如下: <?xml version=”1.0″ encoding=”UTF-8″?> <web-app version=”2.4″ xmlns...
在Ajax更新复习次数时通常都会第一次失败,再点一次就能成功了,第一次失败是因为Request 取到了NULL值,因为对三大框架无缝组合还不太熟悉,如果你知识别忘了告诉我哦(yukiceo@126.com) 由于对页面样式了解不多...
用dwr ajax技术,数据库为oracle,三个表,国家,省,城市,
3.7.2 基于dwr的ajax实现 179 3.7.3 基于dwr的ajax表单验证 183 3.7.4 基于json插件的ajax实现 185 3.8 小结 190 第4章 orm中间件名流hibernate 3接管持久层 191 4.1 orm简介 191 4.1.1 持久化与持久层 191 ...
9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!邪魔外道与边缘学科。 10.1. dwr与ext整合 10.1.1. 无侵入式整合dwr和ext 10.1.2. DWRProxy 10.1.3. DWRTreeLoader 10.1.4. DWRProxy和ComboBox 10.2. localXHR让你...
9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!邪魔外道与边缘学科。 10.1. dwr与ext整合 10.1.1. 无侵入式整合dwr和ext 10.1.2. DWRProxy 10.1.3. DWRTreeLoader 10.2. localXHR让你在不用服务器就玩ajax ...
9.7. 下拉列表选择每页显示多少数据 10. 撕裂吧!邪魔外道与边缘学科。 10.1. dwr与ext整合 10.1.1. 无侵入式整合dwr和ext 10.1.2. DWRProxy 10.1.3. DWRTreeLoader 10.2. localXHR让你在不用服务器就玩ajax 10.3....