在struts2下实现ajax的异步刷新
来源:互联网 发布:淘宝差评怎么改好评 编辑:程序博客网 时间:2024/05/29 18:53
jsp文件以及js文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<base href="<%=basePath%>">
<title>添加用户</title>
<script type="text/javascript">
var xmlhttp;
function test(){
var username = document.getElementById("userName").value;
//创建ajax中的XMLHttpRequest对象,针对于不同浏览器
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.6.0")
}
xmlhttp.onreadystatechange= test1;
xmlhttp.open("GET","checkUserName.action?userName="+username, true);
xmlhttp.send(null);
}
function test1(){
var sp = document.getElementById("msg");
if(xmlhttp.readyState==4){
var flag = xmlhttp.responseText;
if(flag==0)
sp.innerHTML = "<font color='red'>用户名已存在</font>";
else if(flag==1)
sp.innerHTML = "<font color='green'>用户名可以使用</font>";
}
}
</script>
</head>
<body>
<s:form theme="xhtml" action="addUser.action" method="post">
<s:textfield id="userName" name="userName" label="用户名" onblur="test()"></s:textfield>
<span id="msg"></span><<br/>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
XMLHttpRequest是Ajax最核心的对象,它有以下几个重要的方法或属性:
●open():建立到服务器的新请求。
●send():向服务器发送请求。
●abort():退出当前请求。
●readyState:提供当前 HTML的就绪状态。
●responseText:服务器返回的请求响应文本。
其中readyState的五个状态含义为:
0: (Uninitialized) the send( ) method has not yet been invoked.
1: (Loading) the send( ) method has been invoked, request in progress.
2: (Loaded) the send( ) method has completed, entire response received.
3: (Interactive) the response is being parsed.
4: (Completed) the response has been parsed, is ready for harvesting.
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
每一次readyState的变化都会触发readystatechange进而触发test1;
从上面代码可知当“姓名”的文本框失去焦点就会触发test()方法调用后台ACTION,action 返回的结果被responsetext接收,在script中做出最终要显示的提示
struts.xml文件
<action name="checkUserName" class="com.xzit.action.UserAction" method="checkUserName">
<result></result>
</action>
上面的<result></result>里面可以不写,如果报错,就写个已存在的页面,不会跳转的,action里execute的返回值必须为空!
xxx.action文件
//检查用户名是否已经存在
public String checkUserName(){
String flag = userService.checkUserName(userName);
HttpServletResponse response=ServletActionContext.getResponse();
PrintWriter out;
try {
out = response.getWriter();
if("success".equals(flag)){
System.out.println("1");
out.print("1");
out.flush();
out.close();
}else {
System.out.println("0");
out.print("0");
out.flush();
out.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null ;//一定不能够少
}
- 在struts2下实现ajax的异步刷新
- struts2下利用ajax实现异步刷新
- ajax+struts2+JQuery+json实现异步刷新
- AJAX实现异步刷新
- ajax实现异步刷新
- ajax实现异步刷新
- AJAX实现异步刷新
- 通过ajax实现异步刷新
- SpringMVC实现AJax异步刷新
- struts2 ajax json 异步刷新整合
- struts2框架下用ajax实现网页局部刷新
- struts2+ajax实现异步校验
- ajax在JavaScript的使用:异步传输,局部刷新
- JQuey ajax请求servlet实现异步刷新的实例
- ajax异步实现表单的无刷新验证
- JS与Ajax实现异步局部刷新的原理
- 使用Ajax动态添加表格获得后台数据翻页异步刷新(struts2下)
- Ajax异步刷新的使用
- VB.NET制作特效窗体
- cgi开发遇到的问题续
- JSP 9 大内置对象详解
- tomcat数据源配置
- 安全编程: 防止缓冲区溢出(防止如今最常见的程序缺陷)
- 在struts2下实现ajax的异步刷新
- 分页和buffer_cache关系
- OpenGL ES着色器语言之语言基础(官方文档第三章)
- 四川省电信灾备项目--案例
- 使用Google 进行搜索
- MYSQL 5.5安装
- Android 尺寸
- 内核同步机制-信号量
- UML面向对象分析与设计解析