基于struts2和DWR的Ajax输入校验
来源:互联网 发布:网络电视突然不能看了 编辑:程序博客网 时间:2024/06/08 06:49
AJAX是一种新兴的技术,主要特点是可以异步处理用户请求,例如,用户在填写一个表单的时候,当填写完一个文本框后,该文本框失去焦点的同时,会异步地完成同服务器的交互,提示校验信息,而不是所有表单填写完后单击“提交”按钮时显示校验信息。
在这里笔者简单演示一个示例,让读者体验AJAX的特点。
注意:目前dwr的最新版本是3.0,但是struts2的2.1.8版本不支持最新版本,因此值能使用dwr的2.0或者以下版本,我使用的是dwr1.1.3版本,相对比较稳定。
1、新建一个web项目dwrDemo,为了让dwr的核心servlet起作用,必须在web.xml文件中配置核心servlet。配置后的web.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--配置欢迎界面--><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!--配置Struts 2的核心filter--><filter><filter-name>struts</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class><!--配置Struts 2的核心实现类--><init-param><param-name>actionPackages</param-name><param-value>org.apache.struts2.showcase.person</param-value></init-param></filter><filter-mapping><!--拦截所有的URL请求--><filter-name>struts</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置dwr的核心Servlet --><servlet><servlet-name>dwr</servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class><!-- 指定Servlet的实现类 --><init-param><!-- 指定处于开发阶段 --><param-name>debug</param-name><param-value>true</param-value></init-param></servlet><servlet-mapping><!-- 指定DWR的核心Servlet拦截的URL --><servlet-name>dwr</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping></web-app>
2、在上面的web.xml文件中添加了dwr的核心servlet后,该servlet将负责暴露服务器端的java方法,通过dwr.xml配置文件制定需要暴露的java方法,在该项目的WEB-INF目录下新建一个dwr.xml文件,该文件的代码配置如下:
<?xml version="1.0" encoding="UTF-8"?><!-- START SNIPPET: 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.ValidationAwareSupport" /></allow><signatures> <![CDATA[ import java.util.Map; import org.apache.struts2.validators.DWRValidator; DWRValidator.doPost(String, String, Map<String, String>); ]]></signatures></dwr><!-- END SNIPPET: dwr -->
3、在src目录下新建一个com.gdupt.action包,在该包下再新建一个RegisterAction类,用于处理用户的注册请求,代码如下:
package com.gdupt.action;import com.opensymphony.xwork2.ActionSupport;public class RegisterAction extends ActionSupport { private String username;private String password;private int age;public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute(){return SUCCESS;}}
4、在src目录下新建一个struts.xml文件,该文件中添加RegisterAction类的配置,代码如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts> <package name="default" extends="struts-default"> <action name="userregister" class="com.gdupt.action.RegisterAction"> <result name="input">/register.jsp</result> <result name="success">/success.jsp</result> </action> </package></struts>
5、在RegisterAction所在的目录下新建一个RegisterAction-validation.xml文件,在该文件中设置校验规则,来完成输入校验,本输入校验使用字段校验器来配置校验规则。配置代码如下:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> <validators><field name="username"><field-validator type="requiredstring"><message>用户名是必填内容!</message></field-validator></field><field name="password"><field-validator type="requiredstring"><message>密码是必填的内容!!</message></field-validator></field><field name="age"><field-validator type="int"><param name="min">1</param><param name="max">130</param><message>年龄必须在${min}到${max}之间!</message></field-validator></field></validators>
6、在WebContent下新建一个register.jsp页面,为了实现ajax校验,需要将表单设置成ajax主题,并且设置validate="true"。当某个输入组建失去焦点时,系统会负责将输入的内容发送到服务器端进行校验。该页面的代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="/struts-tags" prefix="s"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>欢迎注册</title></head><body><s:form method="post" action="userregister" validate="true" theme="ajax"><s:textfield label="用户名" name="username" /><s:password label="密码" name="password"></s:password><s:textfield label="年龄" name="age"></s:textfield><s:submit value="注册" /></s:form></body></html>
7、在WebContent下新建一个success.jsp页面,当用户注册成功后跳转到success.jsp页面,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>注册成功</title> </head> <body> 恭喜您,注册成功! <br> </body></html>
8、打开浏览器,在地址栏中输入:http://localhost:8080/dwrDemo/register.jsp,进入注册页面,输入不合法的信息,单击注册按钮提交表单,经校验后会在输入框的上方给出相应的提示信息。
- 基于struts2和DWR的Ajax输入校验
- ajax dwr 实现基于struts2的校验
- Struts2的Ajax输入校验
- Struts2的Ajax输入校验
- Struts2的Ajax输入校验
- 基于Ajax的输入校验
- struts2基于验证框架的输入校验
- Struts2的 输入校验
- Struts2的输入校验
- struts2的输入校验
- Struts2的 输入校验 .
- Struts2的输入校验
- Struts2的输入校验
- Struts2的输入校验
- Struts2的输入校验
- 关于Struts2基于验证框架的输入校验的经验
- 使用Struts2的输入校验(四)--基于Annotation的输入校验
- 利用DWR搭建ajax的校验层
- Anylogic 多方法混合建模仿真软件
- windows xp怎样设置开机自动启动项?
- Java_web开发_SSH spring中取得Bean实例的方法 .
- 转换字符串的字符集
- 工作笔记-杂文
- 基于struts2和DWR的Ajax输入校验
- 端口占用
- flex4 application设置滚动条
- screen 使用方法 详解
- 使用JBoss Guvnor报错Local History has been cleared
- Android弹出窗口的实现(PopupWindow)
- mycelipse6.5之安装SVN1.6.X(转载)
- Java关键字final、static使用总结
- heredoc 的新用法