在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术Ajax,那么我们的Struts2框架在这一方面是如何实现的呢,其实也很简单,下面我带大家一起了解下。

1.首先我们需要导入两个依赖包json-lib 和 struts2-json-plugin,这是对json支持的解析包。

2.我们需要创建一个Action类,和其他的都一样

package com.babybus.sdteam.action;

import java.util.List;

import com.babybus.sdteam.bo.ManageServlet;
import com.babybus.sdteam.vo.Student;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport; public class QueyUserAjaxAction extends ActionSupport implements Action {

// 序列化ID
private static final long serialVersionUID = 1L;
   // 搜索内容,查询用
private String searchname;
// 搜索结果列表
private List<Student> resultList; public String getSearchname() {
return searchname;
} public void setSearchname(String searchname) {
this.searchname = searchname;
} public List<Student> getResultList() {
return resultList;
} public void setResultList(List<Student> resultList) {
this.resultList = resultList;
} public String loadUserInfo() throws Exception {
// 创建搜索条件
Student querystudent = new Student();
querystudent.setStudentname(searchname); // 查询结果集合
ManageServlet manageServlet = new ManageServlet();
this.resultList = manageServlet.getStudentByCondition(querystudent); return "userInfo";
} }

3.配置struts.xml,首先要注意的是package中的extends要改成json-default,返回的result要是json格式的

<!-- extends = 'json-default' 这个必须指定 -->
<package name="MyWebProject1" namespace="/" extends="json-default">
<action name="queyuserajax" class="com.babybus.sdteam.action.QueyUserAjaxAction" method="loadUserInfo">
<!-- type = 'json' 类型必须是json -->
<result name="userInfo" type="json" ></result>
</action>
</package>

4.前端页面的ajax调用方法

function queryUserInfo()
{
var queryName = $("#searchText").val(); $.ajax({
// 查询的地址
url:'queyuserajax.action',
// 请求方式
type:'post',
// 传递参数
data:"searchname=" + queryName,
// 数据类型
dataType:'json',
// 成功后回调函数
success:function (data) {
var innerhtml = "<tr><th>uid</th><th>学生姓名</th><th>年龄</th><th>班级</th><th>操作</th></tr>";
if(data.resultList && data.resultList.length > 0)
{
// 清空表格
$("#resultTable").html("");
// 遍历结果集填充
$(data.resultList).each(function (i, value) {
innerhtml += "<tr>";
innerhtml += "<td>" + value.id + "</td> ";
innerhtml += "<td>" + value.studentname+ "</td> ";
innerhtml += "<td>" + value.age+ "</td> ";
innerhtml += "<td>" + value.classname+ "</td> ";
innerhtml += "<td><a href='AddUser.jsp?id=" + value.id + "'>修改</a>|";
innerhtml += "<a href='Mangage?method=del&userid=" + value.id + "' onclick='return confirm('确定要删除么?')' }>删除</a></td>";
innerhtml += "</tr> ";
});
}
$("#resultTable").html(innerhtml);
}
});
}

5.从以上几步我们就可以完成ajax和struts2的交互了。

本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士)

转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4805790.html

[JavaWeb基础] 017.Struts2 和 ajax交互简介的更多相关文章

  1. [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------ ...

  2. [JavaWeb基础] 014.Struts2 标签库学习

    在Struts1和Struts2中都有很多很方便使用的标签库,使用它可以让我们的页面代码更加的简洁,易懂,规范.标签的形式就跟html的标签形式一样.上面的篇章中我们也讲解了自定义标签那么在如何使用标 ...

  3. [JavaWeb基础] 007.Struts2的配置和简单使用

    1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...

  4. [JavaWeb基础] 019.Struts2 MVC架构之ModelDriven

    用过struts1的人接触struts2的时候,通常会产生一个疑惑,明明struts1已经把action的form分开了,为什么struts2确把模型放在action中定义.其实这个方式只是想让act ...

  5. [JavaWeb基础] 018.Struts2 Action通配符使用

    Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...

  6. [JavaWeb基础] 016.Struts2 国际化配置

    如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...

  7. [JavaWeb基础] 015.Struts2 表单验证框架

    在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传 ...

  8. [JavaWeb基础] 013.Struts2 自定义类型转换器

    很多时候,我们在做web开发的时候经常要用到时间的转换器,Struts2给我们提供了一种类型转换器的接口.下面我们讲讲怎么实现吧. 1.首先我们要定义一个类型转换的类,继承自com.babybus.s ...

  9. [JavaWeb基础] 012.Struts2 自定义标签使用

    在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...

随机推荐

  1. 【Redis】跳跃表原理分析与基本代码实现(java)

    最近开始看Redis设计原理,碰到一个从未遇见的数据结构:跳跃表(skiplist).于是花时间学习了跳表的原理,并用java对其实现. 主要参考以下两本书: <Redis设计与实现>跳表 ...

  2. DataHub——实时数据治理平台

    DataHub 首先,阿里云也有一款名为DataHub的产品,是一个流式处理平台,本文所述DataHub与其无关. 数据治理是大佬们最近谈的一个火热的话题.不管国家层面,还是企业层面现在对这个问题是越 ...

  3. 如何在C#/.NET Core中使用责任链模式

    原文:Chain Of Responsbility Pattern In C#/.NET Core 作者:Wade 译者:Lamond Lu 最近我有一个朋友在研究经典的"Gang Of F ...

  4. 【HBase】HBase与MapReduce集成——从HDFS的文件读取数据到HBase

    目录 需求 步骤 一.创建maven工程,导入jar包 二.开发MapReduce程序 三.结果 需求 将HDFS路径 /hbase/input/user.txt 文件的内容读取并写入到HBase 表 ...

  5. 设计模式之GOF23策略

    策略模式strategy 场景:对不同客户的不同报价策略 如果采用if else不易扩展,不符合开闭原则,可以采用策略模式 策略模式: 对应于解决某一个问题的算法族,允许其中一个算法去解决某一问题,同 ...

  6. [hdu4714 Tree2cycle]树形DP

    题意:给一棵树,删边和加边的代价都为1,求把树变成一个圈所花的最小代价. 思路:对原树进行删边操作,直到将原树分成若干条链,然后通过在链之间添加边形成圈,由于删边和加边一一对应,且最后需要额外一条边连 ...

  7. java ->多线程_线程同步、死锁、等待唤醒机制

    线程安全 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的. l  我们通过一个案例,演示线 ...

  8. HttpRequestUtils post get请求

    package com.nextjoy.projects.usercenter.util.http; /** * Created by Administrator on 2016/10/20. */ ...

  9. Office 2016 英文版(VOL版)下载

    Office 2016 英文版(大客户版)下载磁力链接: 1.专业版(含project.visio) ProPlus, Project Pro, Visio Pro (x86-x64) magnet: ...

  10. ql的python学习之路-day9

    前言:本节主要学习装饰器 一.装饰器 定义:本质上是个函数,用来装饰其他函数:(就是为其他函数添加附加功能) 原则:1.不能修改被装饰的函数的源代码 2.不能修改被装饰的函数的调用方式 以上两点可以总 ...