用戶(hù)管理的設(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),使用選擇的所屬單位,查詢(xún)?cè)撍鶎賳挝幌聦?duì)應(yīng)的單位名稱(chēng)列表
function findJctUnit(o){
//貨物所屬單位的文本內(nèi)容
var jct = $(o).find("option:selected").text();
$.post("elecUserAction_findJctUnit.do",{"jctID":jct},function(data,textStatus){
//先刪除單位名稱(chēng)的下拉菜單,但是請(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;
//添加到單位名稱(chēng)的下拉菜單中
var $option = $("<option></option>");
$option.attr("value",ddlCode);
$option.text(ddlName);
$("#jctUnitID").append($option);
}
}
});
}
3.在Action類(lèi)中定義findJctUnit()方法,這里要將返回的List集合放置到棧頂,struts2將其轉(zhuǎn)換成json數(shù)據(jù)
/**
* @Name: findJctUnit
* @Description: 使用jquery的ajax完成二級(jí)聯(lián)動(dòng),使用所屬單位,關(guān)聯(lián)單位名稱(chēng)
* @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ù)類(lèi)型,查詢(xún)對(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ù)類(lèi)型名稱(chēng)查詢(xún)數(shù)據(jù)字典,返回list集合對(duì)象
ValueUtils是一個(gè)工具類(lèi),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)選中所屬單位下拉框的值,在單位名稱(chēng)下拉選項(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了。
以上這篇用戶(hù)管理的設(shè)計(jì)_jquery的ajax實(shí)現(xiàn)二級(jí)聯(lián)動(dòng)效果就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
jquery實(shí)現(xiàn)效果比較好的table選中行顏色
這篇文章主要介紹了jquery table選中行顏色實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-03-03
jQuery調(diào)用AJAX時(shí)Get和post公用的亂碼解決方法實(shí)例說(shuō)明
js調(diào)用AJAX時(shí)Get和post的亂碼解決辦法以前有寫(xiě)過(guò)的但是使用js代碼比較繁瑣,下面與大家分享下使用jQuery該怎么解決,遇到類(lèi)似情況的朋友可以參考下哈2013-06-06
jQuery Ajax自定義分頁(yè)組件(jquery.loehpagerv1.0)實(shí)例詳解
這篇文章主要介紹了jQuery Ajax自定義分頁(yè)組件(jquery.loehpagerv1.0)實(shí)例詳解,需要的朋友可以參考下2017-05-05
Easyui 關(guān)閉jquery-easui tab標(biāo)簽頁(yè)前觸發(fā)事件的解決方法
這篇文章主要介紹了Easyui 關(guān)閉jquery-easui tab標(biāo)簽頁(yè)前觸發(fā)事件 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
ASP.NET jQuery 實(shí)例14 在ASP.NET form中校驗(yàn)時(shí)間范圍
這節(jié)主要講如何用jQuery校驗(yàn)表單時(shí)間范圍,時(shí)間控件用到了jQuery-ui2012-02-02
jQuery+ajax讀取json數(shù)據(jù)并按照價(jià)格排序示例
這篇文章主要介紹了jQuery+ajax讀取json數(shù)據(jù)并按照價(jià)格排序,涉及jQuery基于ajax動(dòng)態(tài)獲取json文件數(shù)據(jù)并進(jìn)行數(shù)據(jù)遍歷與排序的相關(guān)操作技巧,需要的朋友可以參考下2018-03-03

