jQuery ajax请求struts action实现异步刷新
这个样例是用JQueryajax和struts来做的一个小样例,在这个样例中采用两种方式将javaUtil中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以根据需要导入相应的jar包,在这里为了做测试将两种jar包都导入了。下面开始进入正题
第一步:导入相关jar包,本样例需导入struts相关jar包,json-lib.jar,gson-2.1.jar可以任意选择,但是这里需要都导入,因为为了做测试,两种jar包的转换方式都用到了。
第二步:配置web.xml
struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* contextConfigLocation classpath:applicationContext.xml
第三步:新建struts.xml,默认admin/下跳转到/WEB-INF/index.jsp
/WEB-INF/index.jsp
第四步:编写AjaxRequestAction.java文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下
packagecom.fengqi.action; importjava.io.IOException; importjava.util.ArrayList; importjava.util.List; importjavax.servlet.http.HttpServletResponse; importnet.sf.json.JSONArray; importorg.apache.struts2.ServletActionContext; importcom.google.gson.Gson; importcom.opensymphony.xwork2.ActionSupport; /** *创建时间:2014-10-24,ajax请求的action样例 */ publicclassAjaxRequestActionextendsActionSupport{ privateStringsex; @Override publicStringexecute()throwsException{ returnsuper.execute(); } /** *ajax请求,以json格式的字符串响应请求 */ publicvoidajaxString(){ System.out.println(sex); //获取相应Response HttpServletResponseresponse=ServletActionContext.getResponse(); //设置编码方式 response.setCharacterEncoding("UTF-8"); try{ if(sex.equals("nan")){ response.getWriter().write("我是男的"); }elseif(sex.equals("nv")){ response.getWriter().write("我是女的"); }else{ response.getWriter().write("男女都不是"); } //将数据写到页面中 }catch(IOExceptione){ e.printStackTrace(); } } /** *ajax请求,以list的形式响应请求,主要这里的list并不是Util的List,而是经过转换成指出json格式的List */ publicvoidajaxList(){ List
第五步:在将struts.xml文件更新下,配置AjaxRequestAction.java的访问路径添加如下代码
最后struts.xml的完整文件是
/WEB-INF/index.jsp
第六步:编写index.jsp文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%> <% Stringpath=request.getContextPath(); StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>"rel="externalnofollow"> ajax异步刷新样例测试 $(document).ready(function(){ $("#hh1").click(function(){ $.ajax({ url:"ajax/ajax_String",//请求url data:{sex:$("#txt1").val()}, success:function(data){//请求返回的数据 $("div").html(data);//将数据打印到页面的div中 } }); }); $("#hh2").click(function(){ $.ajax({ url:"ajax/ajax_List",//请求urlhttp://www.yxccc.com //cache:false, type:"POST",//请求头,这里是post datatype:'json',//请求数据各式,这里是json格式 success:function(data,status){ data=$.parseJSON(data);//将字符串格式的数据转换成json对象 //这里将option元素移除是考虑到如果在页面不刷新的情况下多次请求,会产生数据累加,不符合业务需求,因此需先删除在增加元素。 $("option").remove(); $("select").append("");//在select元素下添加option子元素。 $(data).each(function(i){//遍历请求相应的data数据 $("select").append(""); }) } }); }); });
这里是ajax请求Demo,该实例是请求Struts中的action
请求返回常规字符串 请求返回JSON格式的List
这里是div元素
请选择性别:男 女
这样一个简单的ajax请求就已经完成了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。