用戶管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果
頁(yè)面效果
實(shí)現(xiàn)步驟
1.引入struts整合json的插件包
2.頁(yè)面使用jquery的ajax調(diào)用二級(jí)聯(lián)動(dòng)的js
//ajax的二級(jí)聯(lián)動(dòng),使用選擇的所屬單位,查詢?cè)撍鶎賳挝幌聦?duì)應(yīng)的單位名稱列表 function findJctUnit(o){ //貨物所屬單位的文本內(nèi)容 var jct = $(o).find("option:selected").text(); $.post("elecUserAction_findJctUnit.do",{"jctID":jct},function(data,textStatus){ //先刪除單位名稱的下拉菜單,但是請(qǐng)選擇要留下 $("#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完成二級(jí)聯(lián)動(dòng),使用所屬單位,關(guān)聯(lián)單位名稱 * @Parameters: 無(wú) * @Return: 使用struts2的json插件包 */ public String findJctUnit(){ //1:獲取所屬單位下的數(shù)據(jù)項(xiàng)的值(從頁(yè)面提交的jctID值,不是數(shù)據(jù)字典中的ddlcode) String jctID = elecUser.getJctID(); //2:使用該值作為數(shù)據(jù)類型,查詢對(duì)應(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集合對(duì)象
ValueUtils是一個(gè)工具類,pushValueStack方法將list壓入到struts2值棧的棧頂
public class ValueUtils { public static void pushValueStack(Object object) { ServletActionContext.getContext().getValueStack().push(object); } }
struts2的插件包會(huì)將壓入到struts2值棧的list集合中對(duì)象所有的屬性全部被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對(duì)象,轉(zhuǎn)換成json對(duì)象 --> <result name="findJctUnit" type="json"></result>
完成上述步驟以后,即可實(shí)現(xiàn)選中所屬單位下拉框的值,在單位名稱下拉選項(xiàng)中有對(duì)應(yīng)值。
在瀏覽器頁(yè)面查看json數(shù)據(jù)如下:
若想針對(duì)某個(gè)屬性被json化,此時(shí)可以修改struts.xml文件:
<!-- 如果是List集合,轉(zhuǎn)換成json數(shù)組;如果是object對(duì)象,轉(zhuǎn)換成json對(duì)象 --> <result name="findJctUnit" type="json"> <param name="includeProperties">\[\d+\]\.ddlCode,\[\d+\]\.ddlName</param> </result>
這里使用正則表達(dá)式攔截一個(gè)或多個(gè)ddlCode和ddlName,這樣json數(shù)據(jù)中就只含有ddlCode和ddlName了。
以上這篇用戶管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
checkbox:click事件觸發(fā)span元素內(nèi)容改變的方法
下面小編就為大家?guī)?lái)一篇checkbox:click事件觸發(fā)span元素內(nèi)容改變的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09jquery如何實(shí)現(xiàn)在加載完iframe的內(nèi)容后再進(jìn)行操作
怎么實(shí)現(xiàn)在加載完iframe的內(nèi)容后才進(jìn)行下一步操作,通過(guò)jquery可以實(shí)現(xiàn),為iframe添加onload事件,具體如下,喜歡的朋友不妨參考下或許對(duì)大家有所幫助2013-09-09jquery 日期控件datepicker屬性詳細(xì)解析
本文是對(duì)jquery中日期控件datepicker的屬性進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11jquery無(wú)法設(shè)置checkbox選中即沒(méi)有變成選中狀態(tài)
設(shè)置以后checkbox并沒(méi)有變成選中狀態(tài),用chrome調(diào)試看了一下,checkbox中確實(shí)有checked屬性,針對(duì)這個(gè)問(wèn)題,大家可以參考下本文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)省市縣三級(jí)聯(lián)動(dòng)效果(附源碼)
這篇文章主要介紹了jQuery+jsp實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果,以完整實(shí)例形式分析了jQuery結(jié)合jsp讀取MySQL數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)效果的相關(guān)技巧,并附帶完整實(shí)例源碼供讀者下載參考,需要的朋友可以參考下2015-12-12