文章翻译自Struts 2官方文档。
AJAX是Asynchronous JavaScript and XML的首字母缩略词。本质上,JavaScript能产生一个HTTP请求并立即更新部分页面,而不是通过传统的POST或者GET方式并更新整个页面。然而更好的是,一个页面可以包含若干产生同步(异步)请求的JavaScript。
关键点是当一个脚本产生一个“AJAX请求”(XHR)时,服务器不知道这个请求来自一个脚本,并且像其他请求一样处理它。AJAX如此成功的一个原因是,它和现有的包括Struts在内的服务器技术一起工作得很好。
不是Ajax请求不同,而是Ajax响应。Ajax响应仅仅返回浏览器显示(或者重新显示)页面的一部分,而不是返回整个页面。这个响应可以是XML形式,或者HTML,或者普通文本,另一个脚本,或者调用脚本想要的任何其他东西。
Struts 1和Struts 2都能返回任意类型的响应。我们并不限制跳转到一个服务器页面。在Struts 1中,你可以做一些像下面这样的事情:
response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("Hello World! This is an AJAX response from a Struts Action."); out.flush(); return null;
在Struts 2中,我们可以用字节流(Stream)result做同样的事情。
还有更容易的方式!
一般来说,使用Struts 2插件(例如,JSON插件,jQuery插件,等等)比直接从action向响应输出更好。更多细节参考下面章节。
Struts 2 Stream result Action
package actions; import java.io.InputStream; import java.io.StringBufferInputStream; import com.opensymphony.xwork2.ActionSupport; public class TextResult extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String execute() throws Exception { inputStream = new ByteArrayInputStream("Hello World! This is a text string response from a Struts 2 Action.".getBytes("UTF-8")); return SUCCESS; } }
Struts 2 Configuring the TextResult Action
<action name="text-result" class="actions.TextResult"> <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action>
提示:使用插件,Struts 2也可以返回JSON(JavaScript Object Notation)响应。
在客户端,有两种基本的策略,这两个策略可以混合使用也可以分开使用。
首先,你可以使用一些JSP标签类型。在这里,你不需要知道所有关于Ajax或者JavaScript的知识。标签库做了所有的事情,你只需要关注如何使用这些标签库。标准的Struts 2标签库包含若干Ajax JSP标签,也可获得许多第三方库,包括:
作为选择,你可以在普通HTML页面使用普通Ajax小部件(widget),使用Dojo,jQuery,或则YUI,和SteamResult或者JSON插件。在这里,虽然篇幅有限,但是你实际上已经学习了JavaScript语言的的一部分。
相关推荐
而本书《搞定J2EE核心技术与企业应用:Ajax,JSP,Struts2,Spring,Hibernate》则是一本针对Java Web开发的专业书籍,它详细介绍了在现代企业级应用开发中常用的技术和框架。 书中首先对Java EE的来源、整体框架和...
8. 实例演示:使用Struts2+Jquery+Ajax实现动态加载数据或表单验证 "struts2 jar"文件包含了Struts2框架的核心库,可能包括struts2-core、struts2-convention、struts2-json-plugin等依赖,这些是开发Struts2应用必...
Java Web整合开发是构建Web应用程序的...通过学习和实践,你可以掌握如何在Eclipse环境中搭建Java Web开发环境,使用Struts 2框架组织应用结构,以及利用Ajax优化交互体验。这将为你在Java Web开发领域打下坚实的基础。
data: {key1: value1, key2: value2}, // 发送到服务器的数据 dataType: 'json', // 预期服务器返回的数据类型 success: function(response) { // 在这里处理成功的回调,response是服务器返回的数据 }, error...
总的来说,Struts2通过与jQuery等JavaScript库的集成,为开发人员提供了强大的Ajax支持,使得在Java Web应用中实现动态交互变得简单且高效。通过理解和熟练运用上述知识点,你可以创建出响应迅速、用户体验良好的Web...
总的来说,Struts2和Ajax的结合使用使得Web应用能够提供更快速、更直观的用户交互,而这个代码和jar包组合可能就是实现这一目标的一个实例。通过阅读提供的文档和使用示例,你可以深入了解并实践这一技术,从而提升...
4. **Struts 2与AJAX的集成**:介绍如何在Struts 2应用中使用AJAX,可能包括XMLHttpRequest对象、JSON数据格式、以及Struts2-AJAX插件的使用。 5. **实战示例**:提供了一些实际的开发案例,如创建一个简单的Struts ...
Struts2通过集成jQuery插件和其他库,使得在基于Struts2的应用中集成AJAX变得简单易行。 首先,我们来理解一下Struts2是如何实现AJAX支持的。Struts2提供了一个名为`struts2-jquery-plugin`的插件,它扩展了Struts2...
Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,极大地简化了Web应用程序的构建。本章主要聚焦于Struts2的标签库及其AJAX技术的应用,这两个关键点对于提升用户体验和增强应用...
通过学习和实践"struts2ajax"中的例子,你可以掌握如何在Struts2应用中有效地使用Ajax技术,提升用户体验,并深入理解Web开发中后端与前端的协作方式。这三个例子将覆盖基本的Ajax请求、使用Struts2插件以及自定义...
Struts2、jQuery和Ajax是Web开发中的三个关键组件,它们共同构成了文件异步上传的基础框架。这个项目是在MyEclipse环境下实现的一个简单的文件上传功能,让我们深入了解一下这些技术及其在文件上传中的应用。 首先...
总结来说,Struts2通过与AJAX的整合以及JSON插件的使用,极大地提升了Web应用的用户体验。它不仅提供了简单的API和工具,使得开发者可以快速地实现AJAX功能,同时还能充分利用现有的JSON库和浏览器的JSON支持,降低...
Struts 2是一个强大的MVC(Model-View-Controller)框架,被广泛应用于Java Web应用程序的开发中。在北大青鸟Y2学年的课程中,学生们通常会学习如何利用Struts 2框架来构建一个租房网站,这涉及到多个关键知识点。 ...
在Struts2中实现Ajax(Asynchronous JavaScript and XML)可以极大地提升Web应用的用户体验,因为它允许部分页面动态更新,而无需整个页面刷新。以下是对Struts2实现Ajax的详细解释: 1. **Ajax基础**: Ajax的...
本资源"零基础学Java[1].Web开发:JSP.Servlet.Struts.Spring.Hibernate.Ajax(PPT).rar"提供了一套完整的入门教材,涵盖了从基础到进阶的关键知识点。 首先,我们从基础开始,讲解【HTML相关技术基础知识】。HTML...
在"Struts2开发依赖包"中,包含了一系列核心库和其他支持库,这些库对于成功地搭建和运行Struts2应用至关重要。以下是一些主要的依赖包及其作用: 1. **Struts2 Core**:这是Struts2的核心库,包含了Action、Result...
在本章中,我们将深入探讨如何开发一个基于Struts、Spring、Hibernate和Ajax的网上信息发布平台。这四个技术是Java Web开发中的核心组件,它们各自承担着不同的职责,共同构建了一个强大而灵活的后端架构。 **...
总结起来,Ajax与Struts2的结合使得Web应用能更高效地处理用户交互,提高响应速度。通过配置Struts2拦截器、使用JSON插件以及编写适当的动作类和前端页面,开发者可以轻松实现异步数据请求和更新。这种技术在现代Web...
1. **JQuery与Struts2 Ajax插件**:虽然Ajax可以通过原生JavaScript实现,但在实际开发中,我们通常会使用JQuery库,因为它简化了Ajax调用的过程。Struts2有一个Ajax插件,它提供了与JQuery集成的功能,使得在Struts...