在网页开发中,我们为了只对网页的某块内容进行实时更新,而不对其他不需要更新的内容进行刷新,从而提高响应速度和节省流量,我们采用了页面的异步刷新技术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

最新文章

  1. 第八篇:SOUI中控件事件的响应
  2. C++智能指针管理类
  3. PF_RING 实验
  4. Spring总结——控制反转,注入(配置和注解两种方式)
  5. Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序
  6. 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker
  7. centos6.x升级protobuf操作流程.
  8. git和github的第一次接触
  9. [MCM] K-mean聚类与DBSCAN聚类 Python
  10. PLSql的使用
  11. 这才是真正的裸眼3D!超级震撼!!
  12. 【Treap 例题】神秘岛(island)
  13. EditPlus 4.3.2543 中文版已经发布(2月3日更新,Emmet 功能回归)
  14. chrome浏览器控制台 console不打印信息问题解决办法。
  15. 删除android ScrollView边界阴影方法
  16. LeetCode—Unique Paths
  17. 文件传输(xmodem协议)
  18. mac brew安装使用卸载
  19. 对Tornado异步操作Sqlalchemy方法的选定 不错
  20. phpstudy 部署php项目

热门文章

  1. MYSQL数据库配置安装、重置密码以及工具连接
  2. 题目分享L
  3. salesforce零基础学习(九十七)Event / Task 针对WhoId的浅谈
  4. Linux高性能服务器技术总结
  5. Git使用教程之SSH连接方式配置(二)
  6. DP之石子堆合并问题
  7. java中&quot;no enclosing instance of type * is accessible&quot;的解决方法
  8. 如何使用 Shebang Line (Python 虚拟环境)
  9. SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model
  10. Apache自定义404