直接把QQ日志搬进来,偷下懒 嘿嘿。
一、准备
1、S2SH整合相关问题这里不做过多介绍;
2.、引入实现Ajax相关的jar包:测试项目中所采用的Struts版本为struts2.1.8,该版本jar包中包含所需插件(json-lib-2.1.jar,struts2-json-plugin-2.1.8.1.jar),之前版本可能需要下载JSON插件;
3、引入jquery相关JS文件;
二 、工程中实现Ajax
这里以实现二级联动下拉菜单为例。
1、在JSP页面中编写前端javascript:项目中使用了jquery的$.getJSON(url,params,function callback(data))函数提交ajax请求到指定url,各个参数的含义为:
url:处理请求的地址,本工程中对应Action中的一个方法;
params:请求参数;
callback(data):回调函数,即接收到服务器处理结果后前端页面执行的方法,data为服务器返回的结果;
2、Ajax请求的配置:Ajax请求类型有别于一般struts2请求,继承自json-default,返回结果类型为json,json-default和“json”的结果类型都在struts2-json-plugin-2.1.8.1.jar的struts-plugin.xml中定义;
struts.xml中action的配置如下:
<package name="ajax" namespace="/ajax" extends="json-default">
<action name="getsub" class="transBfAction" method="getSubAccList">
<result type="json">
<param name="excludeProperties">.*hibernateLazyInitializer</param>
<param name="root">result</param>
</result>
</action>
</package>
其中,与一般action配置不同的是package 中的 extends的设置,aciton返回结果result的返回类型;result中的第一个参数是解决hibernate反射关闭的也就是实体中的属性是另外的实体的问题,有待进一步考察;第二个参数表示返回结果,其值和Action中名称须保持一致,本项目中在Action类中定义了一个名称为result的属性,在对应方法中将返回值赋值给了result;
3、前台JSP接收请求返回结果:本工程使用了JS的eval方法将返回结果data转换成JSON对象,之后进行处理。
下面附上JS代码和相关Action中的代码:
JS:$(function(){
$("#acct").change(function(){
var URL = "/ebank/ajax/getsub.shtml";
params = {'index':$(this).val()};
$.getJSON(URL,params,function callback(data){
var JSON_text = eval("("+data+")");
var myOptions = "";
for(var i=0;i<JSON_text.length;i++){
myOptions +='<option value="' + JSON_text[i].optionValue +'">' + JSON_text[i].optionDisplay + '</option>';
}
$("#subacct").html(myOptions)
});
});
$("#acct").change();
})
$(function(){
$("#acct").change(function(){
var URL = "/ebank/ajax/getsub.shtml";
params = {'index':$(this).val()};
$.getJSON(URL,params,function callback(data){
var JSON_text = eval("("+data+")");
var myOptions = "";
for(var i=0;i<JSON_text.length;i++){
myOptions +='<option value="' + JSON_text[i].optionValue +'">' + JSON_text[i].optionDisplay + '</option>';
}
$("#subacct").html(myOptions)
});
});
$("#acct").change();
})
JS中注意params的写法, params = {'index':$(this).val()};index将''号;
Action对应方法代码:
public String getSubAccList() {
String JSON_text = "";
//获取请求参数
String acctid = this.request.getParameter("index");
//中间具体数据处理代码略
......
//将返回结果赋值给result,与struts.xml中一致
this.result = JSON_text;
return SUCCESS;
}
分享到:
相关推荐
标题 "S2SH+jQuery+JSON+Ajax注册--异步校验" 提及的技术栈主要包含四个关键部分:Struts2 (S2),Spring,Hibernate(SSH)这三大企业级开发框架,以及jQuery、JSON和Ajax这三者组成的前端交互技术。这篇博客文章...
jQuery提供了直观的用户界面和Ajax功能,JSON作为数据交换的载体,而S2SH框架则处理了后端的业务逻辑和数据库操作。这样的项目实例对于学习和理解Web开发的全貌有着极大的价值,涵盖了前端、后端以及数据交互的关键...
在本篇文档中,我们探讨了如何利用Java的S2SH框架,即Spring、Struts2、Hibernate,结合JQuery和Ajax技术实现一个登录验证功能。这个过程涉及前后端的交互以及数据的序列化与反序列化处理。具体的知识点包括: 1. ...
【标题】:s2sh与Ajax的集成应用详解 在Web开发领域,s2sh(Struts2+Spring+Hibernate)是一种常见的企业级框架组合,它整合了Struts2的MVC模式、Spring的依赖注入和事务管理以及Hibernate的对象关系映射功能。Ajax...
Ajax(Asynchronous JavaScript and XML)虽然名称中包含XML,但实际应用中更常见的是使用JSON格式。Ajax技术允许在不刷新整个页面的情况下更新部分网页内容,提高了用户体验。通过创建XMLHttpRequest对象并发送异步...
在这个"最新版S2SH整合ajax之demo"中,我们可以预见到一个演示如何在S2SH框架下集成和使用Ajax的实例。以下是一些关键知识点: 1. **Struts2与Ajax集成**:Struts2支持Ajax请求,通过Struts2的Action类和结果类型...
2. **编写Ajax请求**:使用JavaScript(通常结合jQuery库)创建Ajax请求,指定URL、方法、数据等参数。 3. **创建Action处理请求**:在Struts2 Action中接收并处理Ajax请求,处理业务逻辑。 4. **返回数据**:...
- **前端**:利用jQuery加载zTree所需的JSON数据,这些数据通常由后端通过S2SH框架处理并从MySQL查询得到。zTree插件会根据数据自动渲染出树形结构。 - **后端**:在服务器端,使用Struts2的Action类接收前端请求...
这种联动效果可以通过Ajax技术实现,Struts2支持Ajax请求,可以在前端页面上发送异步请求,获取并更新省市县或年月日的选项。Spring MVC的ModelAndView或Struts2的结果类型可以返回JSON数据,前端JavaScript可以解析...
* Spring:IoC 与 Bean 配置、管理、Bean 生命周期、SP、EL、AOP 与事务权限控制、S2SH 整合开发、Spring 整合 Jpa 十、经典 Java EE * JSF<选学>:MVC 与 JSF 设计理念、托管 Bean 与导航模型、JSF 流程与事件...