[JavaWeb基础] 017.Struts2 和 ajax交互简介
2024-08-28 05:20:15
在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术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
最新文章
- 第八篇:SOUI中控件事件的响应
- C++智能指针管理类
- PF_RING 实验
- Spring总结——控制反转,注入(配置和注解两种方式)
- Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序
- 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker
- centos6.x升级protobuf操作流程.
- git和github的第一次接触
- [MCM] K-mean聚类与DBSCAN聚类 Python
- PLSql的使用
- 这才是真正的裸眼3D!超级震撼!!
- 【Treap 例题】神秘岛(island)
- EditPlus 4.3.2543 中文版已经发布(2月3日更新,Emmet 功能回归)
- chrome浏览器控制台 console不打印信息问题解决办法。
- 删除android ScrollView边界阴影方法
- LeetCode—Unique Paths
- 文件传输(xmodem协议)
- mac brew安装使用卸载
- 对Tornado异步操作Sqlalchemy方法的选定 不错
- phpstudy 部署php项目
热门文章
- MYSQL数据库配置安装、重置密码以及工具连接
- 题目分享L
- salesforce零基础学习(九十七)Event / Task 针对WhoId的浅谈
- Linux高性能服务器技术总结
- Git使用教程之SSH连接方式配置(二)
- DP之石子堆合并问题
- java中";no enclosing instance of type * is accessible";的解决方法
- 如何使用 Shebang Line (Python 虚拟环境)
- SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model
- Apache自定义404