一个简单的AJAX异步通信实例
程序员文章站
2022-03-06 13:57:39
...
textarea失去焦点时异步提交
index.jsp关键代码如下:
第一步:页面编写 其他控件也可,不限于textarea
<s:form action="" method="post">
<div >
<p > 今日心情:</p>
<p >
<textarea id="ta" name="signature" onblur="ajax_submit();" ><s:property value="user.signature"/> //siganature 是user对象的一个属性
</textarea>
</p>
</div>
</s:form>
第二步:在上述页面<head></head>之间加入如下js
<script language="javascript">
//定义一个变量用于存放XMLHttpRequest对象
var xmlHttp;
var deleteStatus ;//存放页面表格删除状态
//改函数用于创建一个XMLHttpRequest对象
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
//这是一个启动AJAX异步通信的方法
function ajax_submit(){
//创建一个XMLHttpRequest对象
createXMLHttpRequest();
//将状态绑定到一个函数
xmlHttp.onreadystatechange=processAjax;
//通过POST方法向指定的URL建立服务器的调用
var url="<%=basePath%>/workPlanAction!deleteWorkPlanDetail.action?dto.workplanDetailId="+detailid;
xmlHttp.open("POST",url,true);
//发送请求
xmlHttp.send(null);
}
//这是一个用来处理状态改变的函数
function processAjax(){
//定义一个变量用于存放 从服务器返回的响应结果
var responseContext="";
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
responseContext = xmlHttp.responseText;
// document.getElementById("ta").value=responseContext;
}
}
}
</script>
第三步:编写action类 关键代码
//待导入包省略
public class UpdateSignatureAction extends ActionSupport implements ServletRequestAware{
public String execute(){
String responseText="";
//读取请求的参数
HttpServletRequest request = ServletActionContext.getRequest();
responseText=request.getParameter("signature");
responseText=new String(responseText.getBytes("ISO-8859-1"),"GBK"); //去掉此行,会出现乱码
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/plain");//设置输出为文字流
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
//直接输出响应的内容
out.println(responseText);
out.flush();
out.close();
其他将签名持久化到数据库的操作略去
return null;
}
}
上一篇: webpack单入口和多入口配置
推荐阅读
-
php基于jquery的ajax技术传递json数据简单实例_PHP
-
tp5 r3 一个简单的SQL语句调试实例
-
Ajax异步提交数据返回值的换行问题实例分析
-
c# dataTable 合并两个列到一个新列中的简单实例
-
java 使用线程做的一个简单的ATM存取款实例代码
-
C#使用TcpListener及TcpClient开发一个简单的Chat工具实例
-
php基于jquery的ajax技术传递json数据简单实例
-
java 使用线程做的一个简单的ATM存取款实例代码
-
C#使用TcpListener及TcpClient开发一个简单的Chat工具实例
-
java 网络编程之TCP通信和简单的文件上传功能实例