- 浏览: 62431 次
- 性别:
- 来自: 广州
文章分类
最新评论
7.4 AJAX输入校验
Struts 2框架在使用客户端校验的时候,由于需要转换为JavaScript脚本,所以并不是所有服务器端的校验规则均能转换为客户端校验,而AJAX校验则可以使用所有的服务器端校验规则。
AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而不是所有表单填写完后单击“提交”按钮时显示校验信息。
在这里笔者简单演示一个示例,让读者体验AJAX的特点,关于AJAX的详细内容,读者可以参考本书后面的介绍。
7.4.1 配置AJAX环境
下面笔者按照建立顺序,引导读者配置AJAX环境。
1.安装dwr-1.1-beta-3.jar文件
Struts 2框架要整合AJAX,需要一个JAR文件,读者可以在Struts 2的struts2-showcase-2.0.11应用示例中找到,在该示例中lib目录下有一个dwr-1.1-beta-3.jar文件,将该文件复制到当前Web应用的WEB-INF\lib目录下。
★ 注意 ★
struts2-showcase-2.0.11为一个war压缩文件,读者可以解压该文件来获得dwr-1.1- beta-3.jar。
2.dwr.xml文件
建立一个dwr.xml配置文件,该文件保存在同web.xml相同的目录下,在该文件中加入如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="validator">
<param name="class" value="org.apache.struts2.validators.DWRValidator"/>
</create>
<convert converter="bean" match="com.opensymphony.xwork2.ValidationAware Support"/>
</allow>
<signatures>
<![CDATA[
import java.util.Map;
import org.apache.struts2.validators.DWRValidator;
DWRValidator.doPost(String, String, Map<String, String>);
]]>
</signatures>
</dwr>
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="validator">
<param name="class" value="org.apache.struts2.validators.DWRValidator"/>
</create>
<convert converter="bean" match="com.opensymphony.xwork2.ValidationAware Support"/>
</allow>
<signatures>
<![CDATA[
import java.util.Map;
import org.apache.struts2.validators.DWRValidator;
DWRValidator.doPost(String, String, Map<String, String>);
]]>
</signatures>
</dwr>
★ 说明 ★
该文件内容为固定格式。
3.web.xml文件
在web.xml文件中加入相关配置内容,修改后的内容如代码7.20所示。
代码7.20 加入AJAX配置的web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<!--配置Struts 2的核心filter-->
<filter>
<filter-name>struts2</filter-name>
<!--配置Struts 2的核心实现类-->
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<!--拦截所有的URL请求-->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--配置欢迎界面-->
<!-- 配置Struts2的核心Servlet -->
<servlet>
<servlet-name>dwr</servlet-name>
<!-- 指定Servlet的实现类 -->
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<!-- 指定处于开发阶段 -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<!-- 指定DWR的核心Servlet拦截的URL -->
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<!--配置Struts 2的核心filter-->
<filter>
<filter-name>struts2</filter-name>
<!--配置Struts 2的核心实现类-->
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<!--拦截所有的URL请求-->
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--配置欢迎界面-->
<!-- 配置Struts2的核心Servlet -->
<servlet>
<servlet-name>dwr</servlet-name>
<!-- 指定Servlet的实现类 -->
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<!-- 指定处于开发阶段 -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<!-- 指定DWR的核心Servlet拦截的URL -->
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
至此,一个简单的AJAX环境便搭建完成了。
发表评论
-
OGNL表达式 用法详解
2012-04-19 11:44 9023表达式通常用来访问页面中的各种变量,进行结果输出. s ... -
struts2.2.3最小jar
2011-07-18 11:32 1794struts2-core-2.2.3.jar :Struts ... -
转: struts2 标签 2
2011-07-05 11:41 1549一、概要:1、JSP标签技术始于JSP1.12、作用: ... -
转:struts2 标签
2011-07-05 11:39 931struts标签的继承 BodyTagSuppor ... -
struts.xml文件属性配置
2011-06-24 16:32 1225开发中发现struts还有co ... -
FilterDispatcher配置
2011-06-24 16:30 1353配置Struts 2的FilterDispatcher类时,可 ... -
struts.xml配置详解
2011-06-24 16:29 775地址:http://www.cnblogs.com/fmric ... -
struts.properties配置详解
2011-06-24 16:14 960在Struts2的核心包中org\apache\strut ... -
转:Struts 2 下载文件(12)下
2011-06-22 18:54 881(2)同时修改配置文件,增加一个input逻辑视图,修 ... -
转:Struts 2 下载文件(12)中
2011-06-22 18:53 76911.3.2 在Action中指定下载资源 前面的 ... -
转:Struts 2 下载文件(12)上
2011-06-22 18:52 108211.3 Struts 2控制文件下载 文件下载相对于 ... -
转: Struts 2多文件上传(11)下
2011-06-22 18:51 843(3)在配置文件中增加如下配置: ... -
转: Struts 2多文件上传(11) 上
2011-06-22 18:50 87011.2 多个文件上传 很多应用都要求在一个界面中可以 ... -
转: struts 2专用表达式(10)下
2011-06-22 18:49 9048.2 Struts 2的OGNL OGN ... -
转: struts 2专用表达式(10)上
2011-06-22 18:47 802OGNL是Object Graphic Navigat ... -
转: 数据校验功能-AJAX输入校验(9)下
2011-06-22 18:45 12107.4.4 建立JSP视图 建立一个reg-aja ... -
转: 数据校验功能-AJAX输入校验(9)中
2011-06-22 18:43 8867.4.2 建立业务控制器 建立一个简单的业务 ... -
转: Struts 2的拦截器(8)下
2011-06-22 18:39 858(3)在ch5包内建立一个业务控制器Reg,如代码5. ... -
转: Struts 2的拦截器(8)上
2011-06-22 18:39 747拦截器(Interceptor)是Struts 2的核 ... -
转: 应用Struts 2 的国际化支持特性(7)下
2011-06-22 18:37 792(4) 同样,success.jsp也使用了标签库,如 ...
相关推荐
本工程有两种ajax异步校验注册时输入的username是否与数据库中的值重复,通过mybatis实现数据库,通过servlet或者struts2实现控制层,通过ajax,jquery,json,实现异步校验
项目概述:本项目是一个基于SSM(Spring、SpringMVC、MyBatis)框架和Bootstrap的图书管理系统,实现了CRUD(创建、读取、更新、删除)功能,并提供数据校验机制及Ajax交互支持。主要开发语言为Java,辅以CSS和...
2.输入输出包: commons-io-1.4.jar 3.日志包: commons-logging-1.0.4.jar 4.信息校验包: commons-validator-1.3.0.jar 5.ajax使用时需要加载的包:dwr.jar 6.freemarker使用时加载的包:freemarker-2.3.8.jar...
总结,通过结合Ajax和jQuery,我们可以轻松实现一个高效且用户友好的异步校验功能,为用户提供实时反馈,提升他们的使用体验。在实际的WEB23项目中,可以参考上述步骤,根据具体的后端接口和业务逻辑进行相应的调整...
1. **数据验证**:在用户输入表单数据后,使用Ajax进行实时校验,提高数据的有效性。 2. **按需取数据**:根据用户的需求动态加载数据,避免一次性加载过多数据造成延迟。 3. **自动更新页面**:例如实时显示新闻、...
在Struts2中,输入校验是确保数据安全和应用程序功能正确性的重要环节。本文将深入探讨Struts2中的输入校验机制,包括其重要性、实现方式以及如何在实际项目中应用。 输入校验对于任何Web应用程序都是必不可少的,...
- `ajax.php`:处理模板的AJAX请求和数据返回。 - `attachment.php`:处理附件下载功能。 - `announcement.php`:论坛公告的显示和处理。 - `config.inc.php`:存储论坛数据库配置,密码等关键信息,修改需谨慎...
2. **Ajax异步校验**:Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换数据并更新部分网页的技术。在这个验证码系统中,用户输入验证码后,Ajax技术被用来异步地向服务器发送...
//网页输入校验工具 //version:2.0 //作者:潘攀(1871870808@qq.com) //时间:2012-10-10 //需要依赖:jquery-1.7.2.js //支持校验类型:不为空、数字、非数字、邮箱、最大长度、最小长 度、起始字符、终止字符、...
Ajax可以在此场景中发挥作用,通过在用户输入时或输入结束后立即发送校验请求,而不必等待用户提交表单。 **实现步骤:** 1. 创建一个HTML输入框,用于用户输入用户名。 2. 使用JavaScript(可能结合事件委托)监听...
jQuery Validate插件提供了一系列内置的校验规则,这些规则能够帮助开发者快速实现表单数据的有效性检查。下面详细介绍这些规则及其用途: 1. **required**: 校验字段是否为空。 - 示例配置:`required: true` - ...
- FineReport移动端的JS接口提供了丰富的功能,涵盖了报表的交互、数据校验、填报提交等多个方面,合理利用这些接口能够大大提高报表开发的效率和用户体验。 - 开发人员在实际应用这些接口时,还需要注意JS代码的...
5. 安全性:Ajax并不提高安全性,仍需对用户输入进行验证和过滤,防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。 6. 更新UI:在接收到服务器响应后,要确保在DOM安全的时间点更新UI,避免影响用户体验。 总结,...
"ssm-ajax.rar"这个压缩包文件包含了关于如何将这三种技术整合,并实现基于Ajax的异步增删改查及登录功能的详细教程。本文将深入探讨这些技术的原理与应用。 首先,Spring框架是一个全面的后端开发解决方案,提供了...
本文实例为大家分享了ajax提交时校验表单的方法,供大家参考,具体内容如下 方法一: 代码示例: 巧妙设计之处:ajax提交的话,不能够进行校验拦截,设置一个flag来判断,很巧妙的设计之处,故收藏! function ...
综上所述,这个Ajax用户名异步校验案例涉及了Web开发中的客户端脚本、服务器端交互、数据库查询等多个层面,是提升用户体验的重要技术实践。学习并理解这个案例,有助于开发者更好地掌握Ajax技术,并将其应用到实际...
在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。例如,在示例中,通过设置`allowBlank: false`,确保了字段不允许为空;`emptyText`定义了当字段为...
j2ee,日期校验,Ajax,ajax,j2ee