这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的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
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <!-- 声明Struts2的前端控制器 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 声明Spring的ContextListener,负责上下文一加载立即创建BeanFactory --> <context-param> <!-- 若applicationContext.xml没有放在WEB-INF下或者不叫这个名字,必需声明此参数 --> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> </web-app>
第三步:新建struts.xml,默认admin/下跳转到/WEB-INF/index.jsp
<?xml version="1.0" encoding="UTF-8" ?> <!-- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://www.yxccc.com/news/"> <struts> <package name="bg" namespace="/" extends="struts-default"> <default-action-ref name="index"/> <!-- =================基础跳转====================== --> <action name="index"> <result>/WEB-INF/index.jsp</result> </action> </package> </struts>
第四步:编写AjaxRequestAction.java文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下
package com.fengqi.action;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.ServletActionContext;
import com.google.gson.Gson;
import com.opensymphony.xwork2.ActionSupport;
/**
* 创建时间:2014-10-24,ajax请求的action样例
*/
public class AjaxRequestAction extends ActionSupport{
private String sex;
@Override
public String execute() throws Exception {
return super.execute();
}
/**
* ajax请求,以json格式的字符串响应请求
*/
public void ajaxString(){
System.out.println(sex);
//获取相应Response
HttpServletResponse response = ServletActionContext.getResponse();
//设置编码方式
response.setCharacterEncoding("UTF-8");
try {
if(sex.equals("nan")){
response.getWriter().write("我是男的");
}else if(sex.equals("nv")){
response.getWriter().write("我是女的");
}else{
response.getWriter().write("男女都不是");
}
//将数据写到页面中
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* ajax请求,以list的形式响应请求,主要这里的list并不是Util的List,而是经过转换成指出json格式的List
*/
public void ajaxList(){
List<Object> list = new ArrayList<Object>();
list.add("张三");
list.add("李四");
//第一种方法:利用json-lib包中的JSONArray将List转换成JSONArray各式。
JSONArray jsonArray = JSONArray.fromObject(list);
//第二周方法:利用goole的json包将List转换成Json对象。
Gson gson = new Gson();
String gsonList = gson.toJson(list);
//获取相应Response
HttpServletResponse response = ServletActionContext.getResponse();
//设置编码方式
response.setCharacterEncoding("UTF-8");
try {
//将数据写到页面中
response.getWriter().println(jsonArray);
} catch (IOException e) {
e.printStackTrace();
}
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
第五步:在将struts.xml文件更新下,配置AjaxRequestAction.java的访问路径添加如下代码
<package name="ajax" namespace="/ajax" extends="struts-default">
<!-- =================ajax请求跳转====================== -->
<action name="ajax_*" class="com.fengqi.action.AjaxRequestAction" method="ajax{1}">
</action>
</package>
最后struts.xml的完整文件是
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://www.yxccc.com">
<struts>
<package name="bg" namespace="/admin" extends="struts-default">
<default-action-ref name="index"/>
<!-- =================基础跳转====================== -->
<action name="index">
<result>/WEB-INF/index.jsp</result>
</action>
</package>
<package name="ajax" namespace="/ajax" extends="struts-default">
<!-- =================ajax请求跳转====================== -->
<action name="ajax_*" class="com.fengqi.action.AjaxRequestAction" method="ajax{1}">
</action>
</package>
</struts>
第六步:编写index.jsp文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" >
<title>ajax异步刷新样例测试</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link href="http://www.yxccc.com/css/css.css" rel="stylesheet" type="text/css" />
<script src="js/jquery-2.1.1.min.js"></script>
<script type="text/javascript">
$(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",//请求url http://www.yxccc.com
//cache: false,
type: "POST", //请求头,这里是post
datatype: 'json', //请求数据各式,这里是json格式
success: function(data,status){
data = $.parseJSON(data); //将字符串格式的数据转换成json对象
//这里将option元素移除是考虑到如果在页面不刷新的情况下多次请求,会产生数据累加,不符合业务需求,因此需先删除在增加元素。
$("option").remove();
$("select").append("<option>请选择</option>");//在select元素下添加option子元素。
$(data).each(function(i){ //遍历请求相应的data数据
$("select").append("<option>"+data[i]+"</option>");
})
}
});
});
});
</script>
</head>
<body>
<br>
<h2 align="center">这里是ajax请求Demo,该实例是请求Struts中的action</h2> <br>
<button id="hh1">请求返回常规字符串</button>
<button id="hh2">请求返回JSON格式的List</button><br><br>
<div>这里是div元素</div><br>
请选择性别:<select id="txt1" name="sex">
<option>请选择</option>
<option value="nan">男</option>
<option value="nv">女</option>
</select><br><br>
<select>
<option>select选择</option>
</select>
</body>
</html>
这样一个简单的ajax请求就已经完成了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# JQuery
# ajax
# 异步刷新
# 如何手写Ajax实现异步刷新
# ajax异步请求刷新
# Ajax实现异步刷新验证用户名是否已存在的具体方法
# Ajax异步刷新功能及简单案例
# 转换成
# 两种
# 跳转
# 样例
# 请选择
# 我是
# 写到
# 但该
# 在这里
# 放在
# 在这个
# 必须要
# 遍历
# 这样一个
# 考虑到
# 不符合
# 种方法
# 来做
# 都用
# 可以根据
相关文章:
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何快速生成ASP一键建站模板并优化安全性?
建站上传速度慢?如何优化加速网站加载效率?
,柠檬视频怎样兑换vip?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何用IIS7快速搭建并优化网站站点?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
TestNG的testng.xml配置文件怎么写
如何在建站主机中优化服务器配置?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
建站之星2.7模板快速切换与批量管理功能操作指南
无锡营销型网站制作公司,无锡网选车牌流程?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
建站之星备案流程有哪些注意事项?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
招商网站制作流程,网站招商广告语?
北京专业网站制作设计师招聘,北京白云观官方网站?
南宁网站建设制作定制,南宁网站建设可以定制吗?
制作网站怎么制作,*游戏网站怎么搭建?
如何挑选高效建站主机与优质域名?
如何在新浪SAE免费搭建个人博客?
想学网站制作怎么学,建立一个网站要花费多少?
网站制作模板下载什么软件,ppt模板免费下载网站?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
完全自定义免费建站平台:主题模板在线生成一站式服务
制作网站公司那家好,网络公司是做什么的?
如何通过WDCP绑定主域名及创建子域名站点?
Android自定义控件实现温度旋转按钮效果
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何彻底删除建站之星生成的Banner?
建设网站制作价格,怎样建立自己的公司网站?
jQuery 常见小例汇总
中山网站制作网页,中山新生登记系统登记流程?
建站之星如何快速解决建站难题?
,南京靠谱的征婚网站?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
网站制作新手教程,新手建设一个网站需要注意些什么?
独立制作一个网站多少钱,建立网站需要花多少钱?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
建站主机默认首页配置指南:核心功能与访问路径优化
制作网页的网站有哪些,电脑上怎么做网页?
如何选择高效响应式自助建站源码系统?
香港服务器如何优化才能显著提升网站加载速度?
如何通过网站建站时间优化SEO与用户体验?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
*请认真填写需求信息,我们会在24小时内与您取得联系。