[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 {

	/**
	 *
	 */
	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";
	}

}

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

<package name="MyWebProject1" namespace="/" extends="json-default">
  <action name="queyuserajax" class="com.babybus.sdteam.action.QueyUserAjaxAction" method="loadUserInfo">
      <result name="userInfo" type="json" ></result>
  </action>
</package>

3.前端页面的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);
          }
      });
  }

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

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

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

时间: 2024-10-10 23:32:11

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

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

本文地址:http://blog.csdn.net/sushengmiyan/article/details/43487751 本文作者:sushengmiyan ------------------------------------------------------------------------------------------------------------------------------------ sencha extjs 5 增加一个struts2的配置,这样可以在

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

在Struts1和Struts2中都有很多很方便使用的标签库,使用它可以让我们的页面代码更加的简洁,易懂,规范.标签的形式就跟html的标签形式一样.上面的篇章中我们也讲解了自定义标签那么在如何使用标签库就更好理解了,直接理解成第三方的标签库.那么我们要使用它,就要在页面上引入它. <%@ taglib prefix="s" uri="/struts-tags" %> Struts2.0标签大体可分为以下几类: 1.UI(User Interface,用

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

1.框架简介 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架,用于快速开发Java Web应用.Struts实现的重点在C(Controller),包括ActionServlet/RequestProcessor和我们定制的Action,也为V(View)提供了一系列定制标签(Custom Tag).但Struts几乎没有涉及M(Model),所以Struts可以采用JAVA实现的任何形式的商业逻辑..目前为止,有Struts1和Struts2

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

用过struts1的人接触struts2的时候,通常会产生一个疑惑,明明struts1已经把action的form分开了,为什么struts2确把模型放在action中定义.其实这个方式只是想让action更加直观,但是如果表单数据过多的话,action类就会出现过于冗长,所以struts2的ModelDriven就要出来解决问题了.下面讲讲ModelDriven的机制 1.工作原理 ModelDriven的机制背后就是ValueStack.界面可以通过直接指定对象的属性名就能给对象进行赋值.

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

如果一个软件想要让其受众是全球或者是几个国家的人,那么这个软件就需要支持多种语言,那么我们就需要软件的国际化去对一些文字信息进行国际化处理.web也一样,当外国人打开我们的网站,要是看到满屏幕的中文,他估计就傻了,好比我们看英文的,或者其他语言的网站时候也不舒服.那么,下面我们就来介绍下使用struts2如何来处理国际化. 1.首先要在strust.xml中在<struts>标签下配置<constant name="struts.custom.i18n.resources&qu

[JavaWeb基础] 009.Struts2 上传文件

在web开发中,我们经常遇到要把文件上传下载的功能,这篇文章旨在指导大家完成文件上传功能 1.首先我们需要一个上传文件的页面. <!--在进行文件上传时,表单提交方式一定要是post的方式, 因为文件上传时二进制文件可能会很大,还有就是enctype属性, 这个属性一定要写成multipart/form-data, 不然就会以二进制文本上传到服务器端 --> <form action="fileUpload.action" method="post"

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

Struts2中有一个很牛逼的action通配符,可以用来简化action配置,以我们将要讲解的案例来说,如果我们要对一个学生信息进行增加,删除,修改,那么按照原来的做法,我们需要写3个Action来配置:student_add,student_update,student_del.那么我们容易发现它们可以提取共同的前缀student_,这样我们就可以配置下通配符,把后面的东西弄成变量,那么我们就只要配置一个action就可以了. 1.首先编写我们的Action类 package com.bab

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

在web开发的过程中,我们经常要用到一些填写表单的操作,我们一般都要在提交表单信息的时候对表单的内容进行验证,struts2给我们提供了简单的实现接口,让我们可以很容易的对表单进行验证.下面讲解下最传统的方法配置表单验证框架,还有更简单明了的就是利用注解,这里就不解释了. 1.首先我们要在要进行配置的Action的同级目录下,新建一个.xml文件,命名格式为:ActionClassName-validation.xml. 例如我的Action类名为:RegisterAction   那么xml名

[JavaWeb基础] 010.Struts2 下载文件

在web开发中,我们经常会有文件的上传下载功能,上一篇的介绍中我们讲解了上传功能,那么这次我们来讲讲下载功能. 1.首先我们需要有一个用于处理下载的测试页面,也就是jsp. <body> <h2>文件下载内容:</h2> <br/> 通讯录.xls:<a href="FileDownload.action">点击下载</a><br/> </body> 2.我们只需要编写最简单的测试代码,那么