ajax使用总结-ajax的配置-ajax的调用-ajax的中文乱码-ajax的表单提交

来源:互联网 发布:看美股用什么软件 编辑:程序博客网 时间:2024/06/05 14:28


  ·jquery的使用
   0、必须优先引入jquery.js 否则无法调用jquery框架
   1、js区分大小写,起名字的时候要注意
   2、jquery根据div的id属性获取页面text的值:$("#demoID").val(),根据class属性获取页面text的值$(".demoCLASS").val(),如果是赋值$("#demoID").val("赋值的参数")
   3、$(document).ready(function(){代码})、$().ready(function(){代码})、$(function(){代码})的含义一样
   4、多个$(function(){代码})可以并存,即只要名字不重复可以同时发挥作用
   5、$(function(){代码})的意思是页面加载完毕即运行,比如自动点击,自动弹框,再或者点击监听或者其他监听
   6、加载完即点击和“点击的监听”的区别(非常有借鉴意义)
      比如现在有一个js方法,function demoFunction(){alert("这个方法运行了");};
      加载完即点击:$("#demoid").click(demoFunction());
      加载完后即监听,这个方法只能是在按钮有click这个动作,或者通过jquery有click()动作:$("#demoid").click(function(){demoFunction()});
   7、如果是自动加载即运行的,或者需要被监听的都需要放置到$(document).ready(function(){代码})的代码中
   8、window.onload=function(){代码}与$(function(){代码})的区别
      ·调用函数的用法不同:
      window.onload = function(){代码};
      $(function(){代码})
      ·调用函数的时间不同
      window.load=function(){代码}:必须等待网页中所有的内容加载完毕(包括图片)才能执行,比如要运用上传等功能。
      $(function(){代码}),等到网页中所有的DOM结构绘制完毕后就可以执行。
   9、AJAX专题
      ·需要的jar包:commons-lang-2.5.jar、commons-lang3-3.1.jar、javassist-3.11.0.GA.jar
      ·前台js的写法:为了简化流程,写成页面加载即运行
      $(document).ready(function(){
$.ajax({
url : "testajax.do",// 请求地址
//timeout : 600000,//超时时间设置,单位毫秒
async : false,// 异步
cache : false,// 缓存
type : 'post',// 请求方式
data: {"name":"123"},//data: $('#formid').serialize(),//序列化表单-当触发一个form表单提交的ajax事件的时候,这个序列化方法自动将数据转化为json格式传递给后台
dataType : 'json',// 服务器返回的数据类型
success : function(msg) {// 请求成功后调用的

alert("返回json的实验成功了"+" msg.resultcode="+msg.resultcode+" msg.name="+msg.name);

},
error :function(){
alert("异常");
}
});
      });
      ·struts.xml文件的写法
      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
    <!--略去一些struts2的配置信息-->
<package name="myajax" extends="json-default" namespace="/">
<global-results>
<result name="message" type="json">
<param name="root">message</param>
</result>
</global-results>
<action name="*" class="demo.action.AjaxTest" method="{1}">
        <result name="list">/index.jsp</result>
       </action>
</package>
<!-- 包含的其他配置文件 -->
<include file="struts-method.xml"></include>


    </struts>    
    
    ·后台java代码:仅距离调用ajax,故不涉及数据库操作
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.HashMap;
    import java.util.Map;


    import javax.servlet.http.HttpServletResponse;


    import org.apache.struts2.ServletActionContext;




    public class AjaxTest {
protected Map<String, Object> message = new HashMap<String, Object>();
/** AJAX请求返回RESULT的name常量*/
protected final static String MESSAGE = "message";



public Map<String, Object> getMessage() {
return message;
}
public void setMessage(Map<String, Object> message) {
this.message = message;
}

//-登录页面中form表单提交的路径
public String testajax() throws IOException{

System.out.println("获取参数name="+ServletActionContext.getRequest().getParameter("name"));

message.put("resultcode", "0000");
message.put("resultcode", "0001");
message.put("name", "zhong文ce试");

return MESSAGE;
}

     }




     ·ajax的应用之提交form表单数据-表单数据自动转json格式
     场景描述:当具体的提交信息为一个form表单,并通过ajax传递给后台时,我们通常使用一个叫序列化的方法将这个form表单转化为json格式传递给后台。


     ·form表单的格式,form标签有id,input标签有name
     <form  id="formid"> 
姓名:<input type="text" name="name" value="张三"/><br>
年龄:<input type="text" name="age" value="12"/><br>
<input type="submit" value="提交" id="submitid"/>
     </form>


     ·js部分的代码-可以单独写在一个js文件,注意,需要先引入jquery.js文件
     $(document).ready(function(){
$("#submitid").click(function(){ajaxhere()});
});
    
     //提交表单的ajax
    function ajaxhere(){
$.ajax({
url : "testajax3.do",// 请求地址
//timeout : 600000,//超时时间设置,单位毫秒
async : false,// 异步
cache : false,// 缓存
type : 'post',// 请求方式
data: $('#formid').serialize(),//序列化表单
dataType : 'json',// 服务器返回的数据类型
//contentType:"application/x-www-form-urlencoded; charset=utf-8",
success : function(msg) {// 请求成功后调用的

alert("form表单触发的实验成功了"+" msg.resultcode"+msg.resultcode+"  msg.name="+msg.name);
},
error :function(){
alert("异常");
}
});


};
       
       ·传统的ajax返回方式,即java部分的返回写在流里-特别要注意这里的处理中文乱码的解决方式
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();


String a = "{\"resultcode\":\"0000\",\"name\":\"文试\"}";
writer.write(a);
writer.flush();
writer.close();






0 0
原创粉丝点击