当前位置: 代码迷 >> Ajax >> 转: 数据校验效能-AJAX输入校验(9)上
  详细解决方案

转: 数据校验效能-AJAX输入校验(9)上

热度:418   发布时间:2012-07-15 20:11:35.0
转: 数据校验功能-AJAX输入校验(9)上

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 2struts2-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

?

2dwr.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>

?

?说明?

该文件内容为固定格式。

?

3web.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>

?

至此,一个简单的AJAX环境便搭建完成了。

?

  相关解决方案