jquery的ajax实现二级联动
2014-07-20 10:05
316 查看
使用了struts2的JSON插件,action中把对象数组放入栈顶,该JSON插件自动将该对象数组转成JSON数组;接着,在JSP页面利用Ajax取JSON数组,实现二级联动的效果。
(1)页面效果:
第二步:在struts.xml中定义:
修改:
<package name="system"namespace="/system" extends="struts-default">
修改成
<package name="system"namespace="/system" extends="json-default">
在Action中添加:
<!--默认将栈顶的对象,转换成json对象,如果栈顶是一个集合,转换成json数组
-->
<result name="findJctUnit"type="json"></result>
第三步:页面使用jquery的ajax调用二级联动的js
第四步:在Action中定义,这里要将返回的List集合放置到栈顶,struts2将其转换成json数据:例如:
上面的操作,将栈顶中封装的List集合,其中List集合中的对象所有的属性全部被json化。
总结:将List中存放的对象中的所有属性全部被json化,如果想针对某个属性被json化
此时可以修改struts.xml文件:
添加:
<!--默认将栈顶的对象,转换成json对象,如果栈顶是一个集合,转换成json数组
-->
<resultname="findJctUnit" type="json">
<paramname="includeProperties">\[\d+\]\.ddlCode,\[\d+\]\.ddlName</param>
</result>
![](http://img.blog.csdn.net/20140720101243555?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20140720101256301?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20140720101319186?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20140720101332508?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(1)页面效果:
![](http://img.blog.csdn.net/20140720101705761?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGFuZ2xpdXFpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
(2)操作步骤:
第一步:引入struts整合json的插件包第二步:在struts.xml中定义:
修改:
<package name="system"namespace="/system" extends="struts-default">
修改成
<package name="system"namespace="/system" extends="json-default">
在Action中添加:
<!--默认将栈顶的对象,转换成json对象,如果栈顶是一个集合,转换成json数组
-->
<result name="findJctUnit"type="json"></result>
第三步:页面使用jquery的ajax调用二级联动的js
//ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表 functionfindJctUnit(o){ //货物所属单位的文本内容 var jct =$(o).find("option:selected").text(); $.post("elecUserAction_findJctUnit.do",{"jctID":jct},function(data,textStatus){ //一句代码就搞定 //先删除单位名称的下拉菜单,但是请选择要留下 $("#jctUnitID option").remove(); if(data!=null &&data.length>0){ for(var i=0;i<data.length;i++){ varddlCode = data[i].ddlCode; var ddlName = data[i].ddlName; //添加到单位名称的下拉菜单中 var$option = $("<option></option>"); $option.attr("value",ddlCode); $option.text(ddlName); $("#jctUnitID").append($option); } } }); }
第四步:在Action中定义,这里要将返回的List集合放置到栈顶,struts2将其转换成json数据:例如:
public String findJctUnit(){ //1: 获取所属单位选中的上海的文本的值 String jctID = elecUser.getJctID(); //2: 将所属单位文本的值作为条件,查询数据字典,返回List<ElecSystemDDL> List<ElecSystemDDL> list = elecSystemDDLService.findSystemDDLListByKeyword(jctID); //3: 将List<ElecSystemDDL>压入栈顶 ValueStackUtils.setValueStack(list); return "findJctUnit"; }
上面的操作,将栈顶中封装的List集合,其中List集合中的对象所有的属性全部被json化。
总结:将List中存放的对象中的所有属性全部被json化,如果想针对某个属性被json化
此时可以修改struts.xml文件:
添加:
<!--默认将栈顶的对象,转换成json对象,如果栈顶是一个集合,转换成json数组
-->
<resultname="findJctUnit" type="json">
<paramname="includeProperties">\[\d+\]\.ddlCode,\[\d+\]\.ddlName</param>
</result>
相关文章推荐
- JQuery_用ajax实现二级联动
- jQuery+php+mysql,轻松实现ajax无刷新省市二级联动
- 前端那些事之jquery和ajax实现二级联动
- ASP.NET jQuery 食谱24 (通过AJAX简单实现DropDownList二级联动)
- jQuery+JSON实现AJAX二级联动实例分析
- 用户管理的设计_jquery的ajax实现二级联动效果
- 使用Ajax和Jquery配合数据库实现下拉框的二级联动
- 使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
- jQuery+JSON实现AJAX二级联动实例分析
- 用AjaxPro实现二级联动
- [Ajax]用简易Ajax框架实现"省市二级联动下拉菜单"【转载】
- php ajax实现的二级(多级)联动菜单(2008-10-21,11:36:08)
- asp.net基于jquery的ajax二级联动
- AjaxPro 实现 三级联动菜单时,出现二级select 闪烁问题
- 用AjaxPro实现二级联动
- php ajax实现的二级(多级)联动菜单(2008-10-21,11:36:08)
- jquery实现ajax下拉菜单联动
- Ajax实现二级联动下拉框
- 用AjaxPro实现二级联动
- Ajax实现二级联动菜单