加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 23:18:56 所属栏目:百科 来源:网络整理
导读:这个样例是用JQuery ajax和struts来做的一个小样例,在这个样例中采用两种方式将java Util中的list转换成支json的格式,第一种是用json-lib.jar这个jar包来转换,第二种是采用goole的gson-2.1.jar来转换,大家可以根据需要导入相应的jar包,在这里为了做测试

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

struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2 /* contextConfigLocation classpath:applicationContext.xml

第三步:

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

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

<action name="index">

/WEB-INF/index.jsp

第四步:

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

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的访问路径添加如下代码

    最后struts.xml的完整文件是

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

    <action name="index">

    /WEB-INF/index.jsp

    第六步:

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

    <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> ajax异步刷新样例测试


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

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

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读