本文的目的是介绍SSH+Jquery+Ajax框架整合的详细情况,特别关注sshajax的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解SSH+Jquery+Ajax
本文的目的是介绍SSH+Jquery+Ajax框架整合的详细情况,特别关注ssh ajax的相关信息。我们将通过专业的研究、有关数据的分析等多种方式,为您呈现一个全面的了解SSH+Jquery+Ajax框架整合的机会,同时也不会遗漏关于Ajax框架 -- jQuery 1.3 发布、ajax框架 php的ajax框架xajax入门与试用介绍、Ajax框架整合、jquery :: ajaxStop()对jquery :: ajaxComplete()的知识。
本文目录一览:- SSH+Jquery+Ajax框架整合(ssh ajax)
- Ajax框架 -- jQuery 1.3 发布
- ajax框架 php的ajax框架xajax入门与试用介绍
- Ajax框架整合
- jquery :: ajaxStop()对jquery :: ajaxComplete()
SSH+Jquery+Ajax框架整合(ssh ajax)
近期学习了SSH2(Struts2+Spring+Hibernate)的整合后,开始尝试的写一个登陆界面,结果发现:若是单单使用struts2来进行页面跳转的话页面的效果不怎么样,同时也无法进行局部刷新(即异步提交验证)。
于是,我开始在网上搜索解决的办法,有些说通过一个隐藏的iframe来达到效果,当我总觉得麻烦和不实用。后来问了下老师,告诉了我使用ajax可以达到想要的效果,我又发现网上有很多例子都是ajax的,但缺少的就是SSH2(整合好的)和ajax 的整合(ajax使用了jQuery框架)。
说说我想要的效果:
登录页面点击提交后 进行后台的验证;
验证成功跳转到index.Jsp;
验证失败则在本登录页面执行一个jQuery脚本提示用户;
需要的包:
SSH2使用到的包外,还需要struts2的以下包:
commons-beanutils-1.8.0.jar
commons-collections-3.1.jar
commons-fileupload-1.3.1.jar
commons-io-2.2.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
ezmorph-1.0.6.jar
freemarker-2.3.19.jar
json-lib-2.3-jdk15.jar
ognl-3.0.6.jar
struts2-core-2.3.16.3.jar
struts2-json-plugin-2.3.16.3.jar
xwork-core-2.3.16.3.jar
好了,开始贴代码:
login.jsp
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <Meta http-equiv="Content-Type"content="text/html; charset=utf-8" /> <title>会员登陆</title> <!-- 必须添加jQuery 否则ajax将不启用。--> <script type="text/javascript"src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button").click (function(){ varuser =$("#User").val(); varpassWord =$("#PassWord").val(); $.ajax({ //这里的需要Struts.xml的<action/>的name属性一致。 url:‘login.action‘,//提交类型 type:‘POST‘,//提交数据给Action传入数据 data:{‘User‘:user,‘PassWord‘:passWord},//返回的数据类型 dataType:‘json‘,//成功是调用的方法 success:function(data){ //获取Action返回的数据用 data.Action中的属性名 获取 if(data.result=="false") { alert("账号密码错误"); }elseif(data.result=="true"){ //进行页面跳转,因为ajax我们的Action只返回数据,不在进行跳转了... location.href = "index.jsp"; } } }); }); }); </script> </head> <body>
账号:<input id="User" name="User"type="text" /><br/>
密码:<input id="PassWord" name="PassWord"type="password" /><br/>
<input id="button" type="button"value="提交" /> </body> </html>
LoginAction.java
publicclass LoginAction extends ActionSupport { //使用@Resource注解注入条件属性名与 ref要一致才可 @Resource FUserService fUserServiceImp; @Resource FUser fUser; private String User; private String PassWord; private String result; public String getResult() { returnresult; } publicvoid setUser (String User) { this.User = User; } publicvoid setPassWord(String PassWord) { this.PassWord = PassWord; } public String execute() throws Exception { HttpServletRequest request = ServletActionContext.getRequest(); //获取ajax传过来的数据直接使用前台的属性名即可获取。 fUser.setUserEmail(User); fUser.setUserPassWord(PassWord); if(fUserServiceImp.CheckUser(fUser)!=null){ //返回给ajax的数据 this.result = "true"; }else{ this.result = "false"; } return"success"; } }
Struts.xml
<?xml version="1.0"encoding="UTF-8"?> <struts> <!―这是我们配置SSH时配置Struts的package --> <package name="Struts" extends="struts-default"> <action name="login"> </action> </package> <!―为了让ajax可以调用Spring中的Action 配置ajax的package --> <package name="ajax_json" extends="json-default"> <!―本处的id就是ajax url的值,class引用了Spring 配置Action的id--> <action name="login"> <result name="success" type="json"/> </action> </package> </struts>
其他SSH2框架整合的不需要改动这样就可以将jQuery框架的ajax整合入SSH2框架使用了!
以上内容是个人所想,如有不对的地方欢迎给我留言,我会在第一时间和大家取得联系,谢谢大家一直以来对编程小技巧网站的支持。
Ajax框架 -- jQuery 1.3 发布
1月14日是jQuery的生日,昨天是 jQuery 三周年的生日,为此 jQuery 发布了一个新的重要版本 1.3,同时宣布加入非盈利性组织 Software Freedom Conservancy。
新版本具有以下几个新的特性:
- Sizzle: 一个新的更强大的选择器引擎;
- Live 事件: 新版的jQ可以无缝将某一个事件绑定到现在后以后的所有元素上。这个问题其实之前的重复绑定问题,你是否还记得当你append()后的元素无法使用,迫不得已在bind一下或者是在代码上写onclick的尴尬?呵呵,live()出马,一个顶N啊!
- 根据W3c规范,做了一个标准的对象;
- 提升了注入的效率;
- 重写了 Offset 方法;
- 取消了浏览器侦听,改成jQuery.support。
同时新版本还发布了一个新的API 浏览页面,如下图所示:
你可以在下面地址下载 1.3 版本
http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.js
关于1.3 版本更详细的信息请看此处。
本站已经升级到 jQuery 1.3 版本。
ajax框架 php的ajax框架xajax入门与试用介绍
Ajax框架整合
我们知道,每次根据不同接口,写不同的Ajax是一件比较麻烦的事儿,但是又不逃避他们,那么该肿么办呢,下面给大家介绍一种整合框架,可以根据与不同接口去创建不同的Ajax
<!DOCTYPE html> <html> <head lang="en"> <Meta charset="UTF-8"> <title></title> </head> <body> <script> function ajax(option){ var setting = { url:'',method:'',data:'',async:true,success:null,error:null,timeout:10000,hrader:null,dataType:'json' }; //循环遍历传参 for(var p in option){ setting[p] = option[p] } //url后的数据处理 var requestdata = ''; if(typeof setting.data == 'object'){ var arr = []; for(var p in setting.data){ arr.push(p + '=' + setting.data[p]); } requestdata = arr.join('&'); }else{ requestdata = setCharset.data; } //异步处理 var xhr; if(XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject(); } //get if(setting.method.toLocaleLowerCase() == 'get'){ xhr.open(setting.method,setting.url +'?'+ requestdata,setting.async); addHeader(); xhr.send(); }else{//post xhr.open(setting.method,setting.url,setting.async); xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); addHeader(); xhr.send(requestdata); } //是否超时 xhr.timeout = setting.timeout; xhr.ontimeout = function(){ typeof setting.error == 'function' && setting.error('timer'); }; //报错 xhr.onerror = function(){ typeof setting.error == 'function' && setting.error(xhr.response); }; //是否异步操作 if(setting.async){ xhr.onreadystatechange = function(){ doResult(); } }else{ doResult(); } //处理请求结果 function doResult(){ if(xhr.readyState == 4 && xhr.status == 200 && typeof setting.success == 'function'); { switch (setting.dataType){ case 'json': setting.success(JSON.parse(xhr.response)); break; default : setting.success(xhr.response); } } } //添加请求头 function addHeader(){ if(typeof setting.hrader == 'object'){ for(var p in setting.header){ xhr.setRequestHeader(p,setting.header[p]); } } } } ajax({ url:'http://apis.baidu.com/tianyiweather/basicforecast/weatherapi',method:'get',data:'area=101010100',dataType:'json',header:{'apikey':'1b9e66408b7e243dcc6c3e10ef6e94d5'},success:function(data){ console.log(data); },error:function(data){ console.log(data); } }) </script> </body> </html>
jquery :: ajaxStop()对jquery :: ajaxComplete()
在http://api.jquery.com/的文档中:
对于ajaxStop()它说:
Description: Register a handler to be called when all Ajax requests have completed. This is an Ajax Event.
对于ajaxComplete()它说:
Description: Register a handler to be called when Ajax requests complete. This is an Ajax Event.
从我可以看到ajaxComplete()更灵活,由于:
All ajaxComplete handlers are invoked,regardless of what Ajax request was completed. If we must differentiate between the requests,we can use the parameters passed to the handler. Each time an ajaxComplete handler is executed,it is passed the event object,the XMLHttpRequest object,and the settings object that was used in the creation of the request.
有人可以解释每个是什么和每个的适当用法。在我最近构建的应用程序中,我依赖于ajaxStop()在我的ajax调用完成时触发。然后我将解析返回的数据的服务器端操作的结果。现在我开始怀疑是否应该使用ajaxComplete()或者两者的组合为各种情况。
想法赞赏。
解决方法
> .ajaxComplete()
– 为每个完成的请求运行,当你想对每个请求/结果做某事时使用这个。注意,这不会取代成功处理程序,因为解析的数据不是参数之一(并且它运行,即使有一个错误) – 你可能希望.ajaxSuccess()
在一些每个请求情况。
> .ajaxStop()
– 当每批请求完成时运行,通常你可以结合使用.ajaxStart()
来显示/隐藏某种类型的“Loading …”指示符,或者在一批AJAX请求时执行其他操作完成,像一个大师的最后一步。
如果你使用这个来解析你的数据,可能有一个更好的方法,在这种情况下,$.ajaxSetup()
,你可以指定一个成功处理程序获取已解析的数据(例如JSON响应将是对象),像这样:
$.ajaxSetup({ success: function(data) { //do something with data,for JSON it's already an object,etc. } });
我们今天的关于SSH+Jquery+Ajax框架整合和ssh ajax的分享就到这里,谢谢您的阅读,如果想了解更多关于Ajax框架 -- jQuery 1.3 发布、ajax框架 php的ajax框架xajax入门与试用介绍、Ajax框架整合、jquery :: ajaxStop()对jquery :: ajaxComplete()的相关信息,可以在本站进行搜索。
本文标签: