第一步:在你的Action中创建一个json数据
public class AjaxAction extends ActionSupport{ /** * */private static final long serialVersionUID = 1Lprivate String resultpublic String getResult() { return result} public void setResult(String result) { this.result = result}public String getjson() { JSONObject json = new JSONObject()json.put("name","张三")json.put("password","123456")result=json.toString()return SUCCESS}
第二步:编写struts.xml文件中的内容
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"><struts><!-- 设置开发者模式 修改action中的名字可以不用重启服务器 --><constant name="struts.devMode" value="true"></constant><!-- 只有在后缀中有(.do)的才经过,这个value可以自己修改 --><constant name="struts.action.extension" value="do"></constant><!-- 开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation" value="true"/><package name="default" extends="json-default" namespace=""><action name="ajax" class="com.action.AjaxAction" method="getjson"><result name="success">/ajaxjson.jsp</result><result type="json" ><!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 --><param name="root">result</param></result></action></package></struts>
凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。parm设置name=“root”表示局部刷新,返回根目录页面.
第三步:首先先了解Ajax的原理:这是用jQuery做的,需要引 js
function testCheck(num){ $.ajax({ type:"post",//提交方式url:"TestCheckServlet",//提交地址async:true,//是否异步请求dataType:"html",//返回类型data:{"num":num},//传过去的值success:function(data,textStatus){//成功执行的方法var json=eval("("+data+")")//将传过来的数据转json,也可以传过来就是json数据免得麻烦转 alert(json.name)}, error:function(){//失败执行的方法alert("error")} }) }
思路:
1、在input的onblur事件中进行验证。
2、通过ajax发送手机号给后台Servlet。
3、Servlet对手机号进行数据库查询,返回是否存在的文字给ajax。
4、ajax收到返回文字后,显示到标签上。
总结:Ajax能够让浏览器和服务器进行交互,并且在不刷新页面的情况下对网页内容进行更新,大大提高了用户体验,通过Ajax技术能够构建交互性极强的Web应用程序。
首先要明白ajax的基本格式,参考下面的内容,可以发现,success是请求成功后服务器返回的数据,接收只需要把回调函数的值处理就可以了,如:
response:即为服务器返回的数据,例如:{"uid":123,"name":"jghdream"},
如下输出即可:
....success: function(response){
console.log(response.uid)
console.log(response.name)
}
.....
以下是ajax的一些参数:
$.ajax({type:'post',
url:'/testajax.php',
dataType:'json',
data:{uid:uid,rands:Math.random()},
success: function(){
alert('ajax return success')
}})
url,类型:String,默认值: 当前页地址。发送请求的地址
data, 类型:String,发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'
dataType,类型:String,预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中,JSON 就会生成一个 JavaScript 对象,而 script 则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后,传递给回调函数。可用值:
"xml": 返回 XML 文档,可用 jQuery 处理。
"html": 返回纯文本 HTML 信息;包含的 script 标签会在插入 dom 时执行。
"script": 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了 "cache" 参数。注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)
"json": 返回 JSON 数据 。
"jsonp": JSONP 格式。使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数。
"text": 返回纯文本字符串
success,当请求之后调用。传入返回后的数据,以及包含成功代码的字符串。
假设你从ajax获取字符串为 ajaxString,则可以这样获取ID:var jsonData = JSON.parse(ajaxString);
var id = jsonData.result.ID
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)