[JavaWeb基础] 017.Struts2 和 ajax交互简介
在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术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交互简介的更多相关文章
- [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置
本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------ ...
- [JavaWeb基础] 014.Struts2 标签库学习
在Struts1和Struts2中都有很多很方便使用的标签库,使用它可以让我们的页面代码更加的简洁,易懂,规范.标签的形式就跟html的标签形式一样.上面的篇章中我们也讲解了自定义标签那么在如何使用标 ...
- [JavaWeb基础] 007.Struts2的配置和简单使用
1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller), ...
- [JavaWeb基础] 019.Struts2 MVC架构之ModelDriven
用过struts1的人接触struts2的时候,通常会产生一个疑惑,明明struts1已经把action的form分开了,为什么struts2确把模型放在action中定义.其实这个方式只是想让act ...
- [JavaWeb基础] 018.Struts2 Action通配符使用
Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来 ...
- [JavaWeb基础] 016.Struts2 国际化配置
如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文, ...
- [JavaWeb基础] 015.Struts2 表单验证框架
在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传 ...
- [JavaWeb基础] 013.Struts2 自定义类型转换器
很多时候,我们在做web开发的时候经常要用到时间的转换器,Struts2给我们提供了一种类型转换器的接口.下面我们讲讲怎么实现吧. 1.首先我们要定义一个类型转换的类,继承自com.babybus.s ...
- [JavaWeb基础] 012.Struts2 自定义标签使用
在做开发中,我们会把一些比较经常使用到的代码封装起来,这样可以加快开发的速度和减少错误,并且在修改bug可以一次修改多次修复.那么在前端页面上,如果我们要经常用到公用的显示功能,并涉及到服务端逻辑操作 ...
随机推荐
- E - No Pain No Game 线段树 离线处理 区间排序
E - No Pain No Game HDU - 4630 这个题目很好,以后可以再写写.这个题目就是线段树的离线写法,推荐一个博客:https://blog.csdn.net/u01003321 ...
- dp cf 20190615
A. Timofey and a tree 这个不算是dp,就是一个思维题,好难想的思维题,看了题解才写出来的, 把点和边分开,如果一条边的两个点颜色不同就是特殊边,特殊边两边连的点就叫特殊点, 如果 ...
- 【Kafka】Kafka集群环境搭建
目录 一.初始环境准备 二.下载安装包并上传解压 三.修改配置文件 四.启动ZooKeeper 五.启动Kafka集群 一.初始环境准备 必须安装了JDK和ZooKeeper,并保证Zookeeper ...
- 【Hadoop离线基础总结】Mac版VMware Fusion虚拟机磁盘挂载
步骤概览 1.打开所要挂载磁盘的虚拟机的设置(此时必须关机) 2.打开硬盘设置 3.添加设备 4.选择新硬盘 5.设置如下图 6.将虚拟机开机,输入 df-lh ,查看当前虚拟机磁盘 7.输入 fdi ...
- VL01N发货过账无法冲销
1业务场景 SD和EWM在使用BAPI:BAPI_OUTB_DELIVERY_CONFIRM_DEC发货过账后,发现外向交货单无法被冲销,后来发现是在发货过账后,有一个字段VLSTK声明仓库被维护上了 ...
- docker redis shell
docker中安装好redis后,运行 docker ps 指令,查看所有运行中的镜像信息 然后运行 docker inspect --format "{{ .State.Pid}}&quo ...
- HMM-前向后向算法理解与实现(python)
目录 基本要素 HMM三大问题 概率计算问题 前向算法 后向算法 前向-后向算法 基本要素 状态 \(N\)个 状态序列 \(S = s_1,s_2,...\) 观测序列 \(O=O_1,O_2,.. ...
- 一文带你了解Spring核心接口Ordered的实现及应用
前言 最近在看框架的时候,发现了这个接口,在此进行总结,希望能够给大家帮助,同时提升自己. order接口的大体介绍 Spring框架中有这个一个接口,名字叫Ordered,联想我们在数据库中应用的O ...
- python--递归函数的学习
递归:函数间接或者直接调用自己 递归分两个过程 1.往下调用,分解的过程 2.往上回溯,综合的过程 递归的条件: 一定要有结束的条件 例子:阶乘: def fun_a(n): #print(n) if ...
- Linux --remote (ssh and VNC)
远程管理 与个人计算机不同,服务器一般都是运行IDC机房中,所以我们通常不会接触到服务器硬件,而是通过各种远程管理方式对服务器进行控制. 常见的远程管理工具方式: -RDP(remote deskto ...