struts2 jquery json ajax 三级联动菜单(2009-05-27 10:40:10)转载标签:it
js代码
$(document).ready(
function(){
$.ajax({
url:"../adminManage/bindTheater.action",
type:"GET",
dataType:"json",
success:bindTheaterList
});
}
);
function bindTheaterList(json){
// 把返回的json字符串赋值给变量data
var data=(json.theaterString);
//遍历json对象
for(var theater in data){
//var option = document.createElement("option");
//document.getElementById("bindTheater").appendChild(option);
//option.value=data[theater].theaterId.value;
//option.text=data[theater].name.value;
//临时变量判断循环次数
var flag=0;
var option=document.createElement("option");
//json对象中的一个元素
for(var key in data[theater]){
//创建一个option
document.getElementById("bindTheater").appendChild(option);
if(flag==0){
option.value=data[theater][key];
flag++;
}else{
option.text=data[theater][key];
flag=0;
}
}
}
}
function getHall(){
//绑定之前 清空第一个以外的option
$("#bindHall").children().eq(0).siblings().remove();
$("#bindShow").children().eq(0).siblings().remove();
var temp=$("#bindTheater").find("option:selected").val();
$.ajax({
url:"../adminManage/bindHall.action",
type:"get",
dataType:"json",
data:"theaterId="+temp,
success:bindHallList
});
}
//回调函数
function bindHallList(json){
data=(json.hallString);
for(hall in data){
var option = document.createElement("option");
for(key in data[hall]){
document.getElementById("bindHall").appendChild(option);
option.text=data[hall][key];
}
}
}
function getShow(){
//绑定之前 清空第一个以外的option
$("#bindShow").children().eq(0).siblings().remove();
var temp = $("#bindHall").find("option:selected").val();
$.ajax({
url:"../adminManage/bindShow.action",
type:"get",
dataType:"json",
data:"hallId="+temp,
success:bindShowList
});
}
//回调函数
function bindShowList(json){
data=(json.showString);
for(show in data){
var option = document.createElement("option");
for(key in data[show]){
document.getElementById("bindShow").appendChild(option);
option.text=data[show][key];
}
}
}
页面代码
<body>
<center>
<div>
<SPAN>
影院:
<select id="bindTheater" onChange="getHall()" style="width:100px;"></select>
</SPAN>
<SPAN>
大厅:
<select id="bindHall" onChange="getShow()" style="width:100px;">
<option value="-1">--</option>
</select>
</SPAN>
<span>
场次:
<select id="bindShow" style="width:100px;">
<option value="-1">--</option>
</select>
</span>
</div>
</center>
<s:submit id="submit" value="生成票" onClick="genarateTickets()"></s:submit>
<div>
</div>
</body>
配置文件
<package name="adminManage" extends="struts-default,json-default" namespace="/adminManage">
来源:(http://blog.sina.com.cn/s/blog_4a9f3eea0100dvgm.html) - struts2 jquery json ajax 三级联动菜单_liuxuesong200666_新浪博客
<action name="bindTheater" class="AdminManagementAction" method="bindTheater">
<result type="json">
</result>
</action>
<action name="bindHall" class="AdminManagementAction" method="bindHall">
<result type="json"></result>
</action>
<action name="bindShow" class="AdminManagementAction" method="bindShow">
<result type="json"></result>
</action>
</package>
action代码
public String bindTheater() throws FileNotFoundException, IOException{
List<Theater> list=adminService.findAllTheter();
StringBuilder sb= new StringBuilder();
int size=list.size();
sb.append("[");
for (Theater theater : list) {
size--;
sb.append("{theaterId:\"");
sb.append(theater.getTheaterId());
sb.append("\",theaterName:\"");
sb.append(theater.getName());
sb.append("\"}");
if(size>0){
sb.append(",");
}
}
sb.append("]");
this.theaterString=sb.toString();
return SUCCESS;
}
public String bindHall(){
List<Hall> list=this.adminService.findHallBytheaterId(Integer.parseInt(this.theaterId));
StringBuilder sb= new StringBuilder();
int size=list.size();
sb.append("[");
for (Hall hall : list) {
size--;
sb.append("{hallId:\"");
sb.append(hall.getHid());
sb.append("\",hallId:\"");
sb.append(hall.getHid());
sb.append("\"}");
if(size>0){
sb.append(",");
}
}
sb.append("]");
this.hallString = sb.toString();
return SUCCESS;
}
public String bindShow(){
List<Show> list=this.adminService.findShowByHallId(Integer.parseInt(this.hallId));
StringBuilder sb= new StringBuilder();
int size=list.size();
sb.append("[");
for (Show show : list) {
size--;
sb.append("{hallId:\"");
sb.append(show.getSid());
sb.append("\",hallId:\"");
sb.append(show.getStartTime());
sb.append("\"}");
if(size>0){
sb.append(",");
}
}
sb.append("]");
this.showString = sb.toString();
return SUCCESS;
}
这里要暴露出几个私有的字段给json序列化(省略getter和setter)
private String theaterString;
private String hallString;
private String showString;
private String theaterId;
private String hallId;
private String showId;
来源:(http://blog.sina.com.cn/s/blog_4a9f3eea0100dvgm.html) - struts2 jquery json ajax 三级联动菜单_liuxuesong200666_新浪博客
分享到:
相关推荐
综上所述,这个项目展示了如何使用Struts2作为后端控制器,jQuery处理前端交互,Ajax实现异步数据传输,以及JSON作为数据交换格式,共同构建一个功能完善的三级联动菜单。开发者需要对这些技术有深入理解,才能有效...
结合这三个组件,开发者可以构建出响应式、动态的Web应用,后端使用Struts 2处理业务逻辑,通过JSON Plugin返回JSON数据,前端利用jQuery通过AJAX请求获取这些数据,然后动态更新页面,提高用户体验。这种前后端分离...
在本项目中,"json实现三级联动下拉框---struts版(数据来自mysql数据库)"是利用JSON来处理省市县三级联动效果的示例,它通过Struts框架与MySQL数据库进行交互,动态地从数据库获取数据并更新到前端页面的下拉框中...
在IT领域,特别是Web开发中,实现省、市、县三级联动是常见需求之一,尤其在用户选择地理位置信息时。本文将深入解析如何利用Ajax、jQuery以及JSON来实现这一功能,通过具体代码示例和实践心得,帮助读者理解并掌握...
"Struts2+JSON+jQuery实现Ajax数据的存取"就是一个典型的示例,它结合了强大的MVC框架Struts2、轻量级的数据交换格式JSON以及高效的前端库jQuery,以实现网页上的无刷新数据交互。下面将详细介绍这三个技术及其在...
标题 "Jquery struts2 json 实现ajax" 涉及到的是在Web开发中使用jQuery库与Struts2框架结合处理JSON数据的Ajax技术。这个主题主要关注如何通过前端的jQuery实现异步请求,与后端的Struts2框架进行交互,从而更新...
总的来说,这个“三级联动”项目展示了如何利用Struts2进行请求处理,Hibernate进行数据操作,JQuery实现前端交互,Ajax进行异步通信,以及Json进行数据交换。这是一个典型的Web应用开发实例,对于理解和掌握这些...
"struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必不可少的组件。 "Struts2"可能是项目实例代码,包括Action类、视图...
在"ajax_struts_jquery_json级联菜单"的场景中,我们将看到如何利用这四种技术协同工作来创建这样的功能。 首先,Struts框架在后台处理业务逻辑。当用户在前端选择了一个父级菜单项后,Struts Action会接收到这个...
“ajax,struts2,json实现省市区三级联动源码含全国省市区数据库”这一标题揭示了这个压缩包包含的是一项使用AJAX、Struts2和JSON技术来实现的省市区三级联动功能的源代码。这项技术常用于web应用中,允许用户在选择...
总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...
本文将深入探讨如何使用jQuery的AJAX方法发送JSON对象数组到Struts2的Action,并在后端进行处理。 首先,我们了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于...
在IT行业中,jQuery、AJAX、JSON以及Struts2是四个非常重要的技术,它们在Web开发领域中扮演着核心角色。下面将详细解释这些技术及其相互间的集成。 **jQuery** 是一个快速、简洁的JavaScript库,它简化了HTML文档...
Struts2是一个强大的MVC(模型-视图-控制器)框架,它允许开发者构建可维护性和可扩展性极强的企业级Web应用。Ajax(异步JavaScript和XML)技术则为Web应用提供了局部刷新的能力,提高了用户体验。JSON(JavaScript ...
Struts2JQueryJson是一个基于Struts2框架与jQuery库,结合JSON(JavaScript Object Notation)数据格式,实现Ajax异步加载对象数据的技术方案。在Web应用开发中,这种技术可以提升用户体验,因为它允许页面部分内容...
这个"Struts2 JQueryJson例子 .rar"压缩包很可能是包含了一个实际的项目实例,演示了如何在Struts2框架中利用JQuery和JSON进行数据交互。下面将详细讲解Struts2、JQuery和JSON的相关知识点: 1. **Struts2框架**: ...
Struts2、JSON、Ajax 和 jQuery 是Web开发中的四个关键技术,它们共同构建了现代Web应用程序的数据交互和用户界面交互的核心部分。 Struts2 是一个基于MVC(Model-View-Controller)架构的Java Web框架,它使得...
在这个"ssh+jquery+ajax二级联动"项目中,开发者可能创建了一个简单的Web应用,实现了基于Ajax的二级联动选择功能。这通常在多级下拉菜单或地区选择等场景中常见,例如:省份选择后,城市列表会动态加载更新。 1. *...
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
### Struts2 + jQuery + JSON 实现Ajax 在现代Web开发中,Ajax技术因其能够实现网页的局部刷新而被广泛采用。本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. ...