有时候当我们从前台提交大量的数据到服务器时,由于服务器处理的时间较长,这个时候我们在浏览器中看到的是一片空白,不知道后台程序是否成功执行了,这个时候就设置一个友好的信息交互界面(比如在界面上提示系统正在处理等信息)来提示用户。
(1) 在struts2中,实现该功能的是使用execAndWait拦截器,它的具体实现过程如下:
1、当表单提交请求到来时,execAndWait拦截器将创建一个新的线程来执行Action,然后返回一个等待页面给用户,让用户知道请求正在处理中。
2、等待页面将包含自动刷新功能,等待界面每隔几秒就通知浏览器,向初始请求的URL再次发送请求。
3、execAndWait拦截器将再次拦截请求,判断Action是否执行完成,如果仍未执行完成,则继续返回等待界面给用户,如果已经执行完成,则向用户返回相应的执行成功界面。
(2) execAndWait拦截器的参数
1、threaPriority 可选参数,用来指定线程的优先级,默认值为Thread.NORM_PRIORITY。
2、delay 可选参数,指定显示,等待页面前,初始等待的延迟时间,以ms为单位。
3、delaySleepInterval 可选参数,只能和dalay参数一起使用,用来指定检查后台进程是否执行完毕的时间间隔,以ms为单位。
(3)execAndWait在struts.xml文件中的配置如下:
<action name="Exception" class="cn.test.action.ExceptionTestAction" method="execute">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="execAndWait"></interceptor-ref>
<result name="success">/WEB-INF/jsp/Esuccess.jsp</result>
<result name="wait">/WEB-INF/jsp/wait.jsp</result>
</action>
提示等待wait.jsp代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="refresh" content="5">
</head>
<body>
正在处理中.....
</body>
</html>
运行程序,5秒后将执行页面刷新操作,如果发现Action已经完成操作,则返回success指向的视图Esuccess.jsp,如果发现Action没有完成相应的操作,则会再次请求wait.jsp页面。
如果设置delay参数
<interceptor-ref name="execAndWait">
<param name="delay">1000</param >
</interceptor-ref>
表示在提交表单后,1000ms内不论Action是否处理完成,都不会显示等待页面。在1000ms之后,如果Action能够处理完请求,则根据Action的返回结果显示相应的视图,否则,继续显示等待wait.jsp界面。
相关推荐
15.4 自动显示等待页面 316 15.5 完成CRUD操作的一个动作 317 15.5.1 CRUD 317 15.5.2 拦截器和接口 318 15.5.3 连接各部分 323 15.6 Tiles和Struts 2 325 15.6.1 关注网站的界面外观 325 15.6.2 配置相互关系 326 ...
然而,Struts2结合Ajax实现了基于服务器端的异步校验,即在用户输入的过程中或完成后,通过Ajax异步请求将数据发送至服务器进行校验,无需等待页面刷新即可得到反馈。这大大提升了用户体验,同时也减轻了服务器的...
当用户通过表单提交带有`enctype="multipart/form-data"`的文件时,Struts2会自动处理这些请求,并将文件内容转换为Java对象。你需要在Action类中创建对应的属性来接收文件,并设置相应的注解,例如`@FileUpload(...
Struts2、Spring和Hibernate是Java企业级开发中常用的三个框架,它们构成了SSH(Struts2、Spring、Hibernate)框架体系,广泛应用于构建MVC(Model-View-Controller)架构的Web应用程序。Ajax(Asynchronous ...
在在线考试系统中,Ajax可以用于实时检查用户输入的正确性,如自动验证选择题答案,或者在用户提交答案后立即显示部分批改结果,而无需等待服务器的完整响应。 3. **JSP(JavaServer Pages)**:JSP是Java Web开发...
在HYOA系统中,Ajax可能被用在各种交互场景,如异步提交表单、实时加载数据或者动态更新界面元素。这使得用户可以无感知地等待后台处理,提高了系统的响应速度和交互性。 5. **SQLSERVER2000**:作为数据库管理系统...
2. `autowiring` 拦截器:当Struts 2与Spring框架集成时,该拦截器能够自动装配Spring容器中的Bean,使得Struts 2的Action可以直接使用Spring管理的Bean。 3. `chain` 拦截器:它构建了一个Action链,使得当前...
在实际界面开发中,DWR可以帮助创建更动态、响应更快的用户界面,比如实时数据更新、无刷新表单提交、拖放功能等。通过学习这些资料,开发者可以掌握如何利用DWR提升Web应用的交互性和用户体验。同时,了解如何正确...
SSH框架,全称为Spring、Struts2和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个项目是基于SSH构建的,重点在于Struts2的使用,特别是其标签库和异步处理功能。 首先,Spring框架是依赖注入...
- 传统Web应用采用“提交请求—页面等待—页面重载”的同步机制,而Ajax则采用异步交互,减少了不必要的页面刷新,提升了交互效率。 6. **Ajax应用实例** - 在办公自动化系统中,Ajax可以用于实时更新任务列表、...
- **表单验证**:使用AJAX Tags,可以在用户填写表单时即时验证输入,无需等待表单提交后才显示错误。 - **数据分页**:在浏览大量数据时,通过AJAX Tags实现无刷新的分页加载,提升用户体验。 - **实时反馈**:例如...
在CRUD操作中,Ajax可以实现无刷新的数据提交和获取,使得用户在进行增删改查时无需等待整个页面的重新加载。 综上所述,"ext s2sh整合实例 增删改查"是一个综合性的Web开发项目,展示了如何利用EXTJS构建交互式...
Ajax技术则被用来实现页面无刷新的交互体验,比如考生在答题时,可以实时检查答案的正确性,或者在提交试卷后立即查看分数,无需等待整个页面刷新。 **二、Ajax异步请求** Ajax(Asynchronous JavaScript and XML...
文档中还给出了几个界面的截图,包括登录等待窗口、用户信息录入界面、角色录入界面以及用户查询页面等。 这些界面通常是由 ExtJS 构建的前端页面,通过 Ajax 技术与后端的 Spring MVC 控制器进行交互。例如,在...
Struts 标签库提供了一系列用于简化页面开发的标签,例如 `<s:textfield>`、`<s:submit>` 等,可以直接在 JSP 页面中使用。 #### 28. Struts抛出form是怎么把数据读出来的? 使用 `ActionForm` 对象接收表单数据。...
当用户在考试中选择答案或提交表单时,可以通过异步调用后台服务,获取实时反馈,而无需等待整个页面刷新。这不仅提高了响应速度,也优化了用户体验。Ajax通常结合JavaScript库如jQuery来简化前端开发,通过...
2. **Struts框架的特点:** - MVC设计模式,将模型、视图和控制器分离。 - 支持国际化、文件上传下载等功能。 - 社区活跃,有大量的插件和扩展。 3. **RIA技术概述:** - RIA(Rich Internet Applications)指...
- View代表用户界面,负责显示数据。 - Controller负责接收用户的输入并调用相应的模型和视图完成用户的需求。 使用MVC模式的好处包括: - 分离关注点,提高代码的可读性和可维护性。 - 便于团队协作,不同的开发...
在开发Web应用时,Java通常与Java Servlets、JavaServer Pages (JSP) 和Java EE框架(如Spring或Struts)一起使用,以构建动态和高效的应用程序。由于Java的安全性和稳定性,它是开发企业级应用的首选语言,尤其适合...
5. 成绩显示:考试结束后,系统自动评分,考生可以查看成绩及解析。 6. 错题记录:系统可能记录考生的错题,便于他们针对性复习。 7. 数据统计:管理员可以查看考试的整体情况,如平均分、及格率等。 为了实现以上...