jQuery ajax请求struts action实现异步刷新

这个样例是用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

rush:xml;"> struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* contextConfigLocation classpath:applicationContext.xml

第三步:

新建struts.xml,认admin/下跳转到/WEB-INF/index.jsp

rush:xml;"> figuration 2.3//EN" "http://www.yxccc.com/news/">

<package name="bg" namespace="/" extends="struts-default">
<default-action-ref name="index"/>

<action name="index">

/WEB-INF/index.jsp

第四步:

编写AjaxRequestAction.java文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下

rush:java;"> 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 list = new ArrayList();
    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的访问路径添加如下代码

    rush:xml;">

    最后struts.xml的完整文件

    rush:xml;"> figuration 2.3//EN" "http://www.yxccc.com">

    <package name="bg" namespace="/admin" extends="struts-default">
    <default-action-ref name="index"/>

    <action name="index">

    /WEB-INF/index.jsp

    第六步:

    编写index.jsp文件,这里做了两种请求,一种是直接请求到字符串,另一种是请求到一组数组格式的数据,但该数据必须要转换成JSON支持的数组,具体如下

    rush:xhtml;"> <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> nofollow" > ajax异步刷新样例测试 <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">     


    这样一个简单的ajax请求就已经完成了。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

    相关文章

    IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
    PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
    使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
    Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
    本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
    Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...