用戶管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級聯(lián)動效果
頁面效果
實(shí)現(xiàn)步驟
1.引入struts整合json的插件包
2.頁面使用jquery的ajax調(diào)用二級聯(lián)動的js
//ajax的二級聯(lián)動,使用選擇的所屬單位,查詢該所屬單位下對應(yīng)的單位名稱列表 function findJctUnit(o){ //貨物所屬單位的文本內(nèi)容 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將其轉(zhuǎn)換成json數(shù)據(jù)
/** * @Name: findJctUnit * @Description: 使用jquery的ajax完成二級聯(lián)動,使用所屬單位,關(guān)聯(lián)單位名稱 * @Parameters: 無 * @Return: 使用struts2的json插件包 */ public String findJctUnit(){ //1:獲取所屬單位下的數(shù)據(jù)項(xiàng)的值(從頁面提交的jctID值,不是數(shù)據(jù)字典中的ddlcode) String jctID = elecUser.getJctID(); //2:使用該值作為數(shù)據(jù)類型,查詢對應(yīng)數(shù)據(jù)字典的值,返回List<ElecSystemDDL> List<ElecSystemDDL> list = elecSystemDDLService.findSystemDDLListByKeyword(jctID); //3:將List<ElecSystemDDL>轉(zhuǎn)換成json的數(shù)組,將List集合放置到棧頂 ValueUtils.pushValueStack(list); return "findJctUnit"; }
其中,findSystemDDLListByKeyword(jctID)是在數(shù)據(jù)字典service中實(shí)現(xiàn)的方法,主要根據(jù)數(shù)據(jù)類型名稱查詢數(shù)據(jù)字典,返回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值
修改前
<!-- 系統(tǒng)管理 --> <package name="system" extends="struts-default" namespace="/system">
修改后
<!-- 系統(tǒng)管理 --> <package name="system" extends="json-default" namespace="/system">
(2)添加映射
<!-- 如果是List集合,轉(zhuǎn)換成json數(shù)組;如果是object對象,轉(zhuǎn)換成json對象 --> <result name="findJctUnit" type="json"></result>
完成上述步驟以后,即可實(shí)現(xiàn)選中所屬單位下拉框的值,在單位名稱下拉選項(xiàng)中有對應(yīng)值。
在瀏覽器頁面查看json數(shù)據(jù)如下:
若想針對某個屬性被json化,此時可以修改struts.xml文件:
<!-- 如果是List集合,轉(zhuǎn)換成json數(shù)組;如果是object對象,轉(zhuǎn)換成json對象 --> <result name="findJctUnit" type="json"> <param name="includeProperties">\[\d+\]\.ddlCode,\[\d+\]\.ddlName</param> </result>
這里使用正則表達(dá)式攔截一個或多個ddlCode和ddlName,這樣json數(shù)據(jù)中就只含有ddlCode和ddlName了。
以上這篇用戶管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級聯(lián)動效果就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
checkbox:click事件觸發(fā)span元素內(nèi)容改變的方法
下面小編就為大家?guī)硪黄猚heckbox:click事件觸發(fā)span元素內(nèi)容改變的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09jquery如何實(shí)現(xiàn)在加載完iframe的內(nèi)容后再進(jìn)行操作
怎么實(shí)現(xiàn)在加載完iframe的內(nèi)容后才進(jìn)行下一步操作,通過jquery可以實(shí)現(xiàn),為iframe添加onload事件,具體如下,喜歡的朋友不妨參考下或許對大家有所幫助2013-09-09jquery 日期控件datepicker屬性詳細(xì)解析
本文是對jquery中日期控件datepicker的屬性進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11jquery無法設(shè)置checkbox選中即沒有變成選中狀態(tài)
設(shè)置以后checkbox并沒有變成選中狀態(tài),用chrome調(diào)試看了一下,checkbox中確實(shí)有checked屬性,針對這個問題,大家可以參考下本文2014-03-03jquery $(this).attr $(this).val方法使用介紹
$(this).attr(key); 獲取節(jié)點(diǎn)屬性名的值,相當(dāng)于getAttribute(key)方法,本文整理了一些相關(guān)的示例,感興趣的朋友可以參考下2013-10-10jQuery+jsp實(shí)現(xiàn)省市縣三級聯(lián)動效果(附源碼)
這篇文章主要介紹了jQuery+jsp實(shí)現(xiàn)省市縣三級聯(lián)動效果,以完整實(shí)例形式分析了jQuery結(jié)合jsp讀取MySQL數(shù)據(jù)庫操作實(shí)現(xiàn)省市縣三級聯(lián)動效果的相關(guān)技巧,并附帶完整實(shí)例源碼供讀者下載參考,需要的朋友可以參考下2015-12-12