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相同的目录下,在该文件中加入如下内容:
?
<!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
?
<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环境便搭建完成了。
?