用户管理的设计_jquery的ajax实现二级联动效果


Posted in jQuery onJuly 13, 2017

页面效果

用户管理的设计_jquery的ajax实现二级联动效果

实现步骤

1.引入struts整合json的插件包

2.页面使用jquery的ajax调用二级联动的js

//ajax的二级联动,使用选择的所属单位,查询该所属单位下对应的单位名称列表
  function findJctUnit(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++){
             var ddlCode = data[i].ddlCode;
             var ddlName = data[i].ddlName;
             //添加到单位名称的下拉菜单中
             var $option = $("<option></option>");
             $option.attr("value",ddlCode);
             $option.text(ddlName);
             $("#jctUnitID").append($option);
          }
      }
    });
    
  }

3.在Action类中定义findJctUnit()方法,这里要将返回的List集合放置到栈顶,struts2将其转换成json数据

/** 
  * @Name: findJctUnit
  * @Description: 使用jquery的ajax完成二级联动,使用所属单位,关联单位名称
  * @Parameters: 无
  * @Return: 使用struts2的json插件包
  */
  public String findJctUnit(){
    //1:获取所属单位下的数据项的值(从页面提交的jctID值,不是数据字典中的ddlcode)
    String jctID = elecUser.getJctID();
    //2:使用该值作为数据类型,查询对应数据字典的值,返回List<ElecSystemDDL>
    List<ElecSystemDDL> list = elecSystemDDLService.findSystemDDLListByKeyword(jctID);
    //3:将List<ElecSystemDDL>转换成json的数组,将List集合放置到栈顶
    ValueUtils.pushValueStack(list);
    return "findJctUnit";
  }

其中,findSystemDDLListByKeyword(jctID)是在数据字典service中实现的方法,主要根据数据类型名称查询数据字典,返回list集合对象

ValueUtils是一个工具类,pushValueStack方法将list压入到struts2值栈的栈顶

public class ValueUtils {

  public static void pushValueStack(Object object) {
    ServletActionContext.getContext().getValueStack().push(object);
  }
}

struts2的插件包会将压入到struts2值栈的list集合中对象所有的属性全部被json化

4.在struts.xml中定义

(1)修改 extends值

修改前

<!-- 系统管理 -->
<package name="system" extends="struts-default" namespace="/system">

修改后

<!-- 系统管理 -->
  <package name="system" extends="json-default" namespace="/system">

(2)添加映射

<!-- 如果是List集合,转换成json数组;如果是object对象,转换成json对象 -->
<result name="findJctUnit" type="json"></result>

完成上述步骤以后,即可实现选中所属单位下拉框的值,在单位名称下拉选项中有对应值。

在浏览器页面查看json数据如下:

用户管理的设计_jquery的ajax实现二级联动效果

若想针对某个属性被json化,此时可以修改struts.xml文件

<!-- 如果是List集合,转换成json数组;如果是object对象,转换成json对象 -->
      <result name="findJctUnit" type="json">
        <param name="includeProperties">\[\d+\]\.ddlCode,\[\d+\]\.ddlName</param>
 </result>

这里使用正则表达式拦截一个或多个ddlCode和ddlName,这样json数据中就只含有ddlCode和ddlName了。

以上这篇用户管理的设计_jquery的ajax实现二级联动效果就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
Jun 02 jQuery
jQuery为某个div加入行样式
Jun 09 jQuery
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
Nov 09 jQuery
jQuery实现checkbox的简单操作
Nov 18 jQuery
解决Jquery下拉框数据动态获取的问题
Jan 25 jQuery
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
jQuery实现的简单手风琴效果示例
Aug 29 jQuery
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
JQuery EasyUI的一些常用组件
Jul 12 #jQuery
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 #jQuery
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
jQuery实现节点的追加、替换、删除、复制功能示例
Jul 11 #jQuery
使用jQuery实现动态添加小广告
Jul 11 #jQuery
jquery.validate.js 多个相同name的处理方式
Jul 10 #jQuery
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 #jQuery
You might like
PHP+DBM的同学录程序(3)
2006/10/09 PHP
php中实现记住密码自动登录的代码
2011/03/02 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php时间函数用法分析
2016/05/28 PHP
php如何修改SESSION的生存存储时间的实例代码
2017/07/05 PHP
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery动态添加option示例
2013/12/30 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
Express.JS使用详解
2014/07/17 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
js中删除数组中的某一元素实例(无下标时)
2017/02/28 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
详解JavaScript数组过滤相同元素的5种方法
2017/05/23 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
Angular.js中上传指令ng-upload的基本使用教程
2017/07/30 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
JavaScript实现点击自制菜单效果
2021/02/02 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
django中的setting最佳配置小结
2017/11/21 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
浅谈Series和DataFrame中的sort_index方法
2018/06/07 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
python中操作文件的模块的方法总结
2021/02/04 Python
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
文秘人员工作职责
2014/01/31 职场文书
教师简历自我评价
2014/02/03 职场文书
上课看小说检讨书
2014/02/22 职场文书