基于Struts2与jQuery实现JSON传输的下拉菜单二级联动
作者:键盘侠时间:2026-10-28 08:36:09浏览:449
本文介绍如何利用Struts2框架结合jQuery和Ajax技术,通过JSON对象实现前端下拉菜单的二级联动功能。详细解析了从后台Action获取数据、前端JS处理JSON响应动态生成选项,以及Struts.xml配置返回JSON结果的完整流程,适用于需要动态关联选择框的Web开发场景。
Struts2与jQuery实现JSON传输的二级联动方案
本方案旨在利用Struts2框架与Ajax技术进行JSON对象的传输,从而在前端页面实现菜单的二级联动效果。
以下是前端JavaScript文件的完整源代码:
具体代码实现如下:
var mail={
//初始化
init:{
//初始化数据
initdata:{
did:'',
ttitle:'',
sendpassword:'',
description:''
},
//初始化事件
initevent:{
DataEvent:function(){
jQuery("#did").unbind("change");//获取一级菜单,绑定事件
jQuery("#did").bind("change",function(){
//alert(jQuery(this).val());
mail.init.initdata.did=jQuery(this).val();
//alert(mail.init.initdata.did);
mail.init.initevent.getuser();
});
},
<span style="color:#ff0000;">getuser:function(){
jQuery.post("mailAction_showUsers?did="+mail.init.initdata.did,null,function(data){
var uidoption=jQuery("#uid") ;//获取二级菜单
uidoption.empty();//将列表清空
for(var i=0;i<data.users.length;i++){
//向里面填充option,通过循环
uidoption.append("<option value="+data.users[i].uid+ " >"+data.users[i].username+"</option>" );
}
});
},
submitCheck:function(){
jQuery("#send").unbind("click");
jQuery("#send").bind("click",function(){
mail.init.initdata.description=jQuery("input[type='textarea']").text();
mail.init.initdata.sendpassword=jQuery("input[name='sendpassword']").val();
mail.init.initdata.ttitle=jQuery("input[name='ttitle']").val();
if(mail.init.initdata.sendpassword==""){
alert("请输入密码!");
return false;
}
}else if(mail.init.initdata.ttitle==""){
alert("请输入主题!");
return false ;
}
}else if(mail.init.initdata.description==""){
alert("请输入内容!");
return false;
}
}else
return true;
});
}
}
}
}
jQuery().ready(function(){
mail.init.initevent.DataEvent();
mail.init.initevent.submitCheck();
}); 后台Action与Struts.xml配置
以下是后台Action类的代码:
具体代码如下:
private int did;
public String getDid(){
...
}
public void setDid(String did){
...
}
public String showUsers(){
users=(ArrayList<User>)this.userService.getUsersByDid(did);
System.out.println(users.size()+"...");
return SUCCESS;
} Struts.xml配置文件如下:
具体配置代码如下:
<package name="users" namespace="/" extends="json-default">
<action name="mailAction_showUsers" method="showUsers" class="mailAction">
<result type="json"></result>
</action>
</package> 前端JSP页面实现
前端JSP页面代码示例:
具体JSP代码如下:
<td width="65px">接收人</td>
<td> <s:select list="departmentlist" listKey="did" listValue="dname" id="did" name="did"></s:select>
<s:select list="users" listKey="uid" listValue="username" id="uid" name="uid"></s:select>
</td> 以下是实现后的运行效果截图:
本文旨在为有类似需求的开发者提供参考。
作者最新文章
免登录快速分享代码:适合面试协作的轻量级JS在线运行工具推荐
2026-11-05 14:45:59
JS空字符串和纯空格转浮点数的结果是什么
2026-11-05 11:04:42
JS在线格式化缩进混乱怎么办?配置项调整技巧
2026-11-04 23:27:25
JS怎么获取秒级时间戳
2026-11-03 21:45:29
JS时间戳怎么从毫秒转换为秒
2026-11-03 20:04:14
相关标签:
