猿教程 Logo

Struts2校验器:ajax校验器

Struts 2支持ajax验证。 在这种情况下,页面不会被刷新或重新加载,因此它将使性能更快。 它是使用javascript隐含地完成的,即用于客户端验证。

要使用AJAX验证,您需要在项目中添加dojo插件。


jsonValidation拦截器

AJAX验证由jsonValidation拦截器执行。 它在默认堆栈中找不到,所以我们需要明确定义它。 它本身不执行任何验证,因此它必须与验证拦截器一起使用。 它在jsonValidationWorkflowStack中找到,其中包括jsonValidation,验证和工作流拦截器以及basicstack。


执行AJAX验证的步骤

执行AJAX验证的简单步骤如下:

  1. 创建表单以从用户获取输入

  2. 在您的action中继承ActionSupport类

  3. 在validation.xml文件中定义验证

  4. 定义错误消息的结果名称输入,并在struts.xml文件中注册jsonValidationWorkflowStack


执行ajax验证的示例

在这个例子中,我们创建了4页:

  1. index.jsp用于从用户输入。
  2. Register.java用于业务逻辑。
  3. Register-validation.xml用于使用捆绑验证器。
  4. struts.xml用于定义拦截器和操作的结果。
  5. welcome.jsp为视图组件。

1)创建index.jsp进行输入

这个jsp页面使用struts UI标签创建一个表单。 它从用户那里接收名称,密码和电子邮件ID。

index.jsp

<%@ taglib  uri="/struts-tags" prefix="s"%>
<%@ taglib uri="/struts-dojo-tags" prefix="d"%>
<html>
<head>
<d:head/>
</head>
<body>
<marquee>Registration Form.............</marquee>

<s:form action="register">
<s:textfield name="name" label="Username"></s:textfield>
<s:textfield name="email" label="Email ID"></s:textfield>
<s:password name="password" label="Password"></s:password>
<d:submit validate="true" type="image" src="register-now.jpg">
</d:submit>
</s:form>

</body>
</html>

2)创建action类

此操作类继承ActionSupport类并覆盖execute方法。

RegisterAction.java

package mypack;

import com.opensymphony.xwork2.ActionSupport;

public class Register extends ActionSupport{
private String name,password,email;

//setters and getters

public String execute(){
	return "success";
}
}

3)创建验证文件

在这里,我们使用内置验证器来执行验证。

Register-validation.xml

<?xml version="1.0" encoding="UTF-8"?>
  
<!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="name">
	<field-validator type="requiredstring">
	<message>Name can't be blank</message>
	</field-validator>
	</field>
  		
	<field name="email">
	<field-validator type="requiredstring">
	<message>Email ID can't be blank</message>
	</field-validator>
	<field-validator type="email">
	<message>Please enter a valid email ID</message>
	</field-validator>
	</field>
  		
	<field name="password">
	<field-validator type="requiredstring">
	<message>Password can't be blank</message>
	</field-validator>
	<field-validator type="stringlength">
	<param name="minLength">5</param>
	<param name="maxLength">10</param>
	<message>Password can't be less than 5 or greater than 10</message>
	</field-validator>
  		
	</field>
  		
  
  		
 	</validators>

4)创建struts.xml

这个xml文件通过名称输入定义了一个额外的结果,另外还有一个拦截器jsonValidatorWorkflowStack。

相关实例:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts
 Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

<package name="a" extends="struts-default">

<action name="register" class="mypack.Register">
<interceptor-ref name="jsonValidationWorkflowStack"></interceptor-ref>

<result name="success">/welcome.jsp</result>
<result name="input">/index.jsp</result>
</action>

</package>
</struts>

5)创建视图组件

它是显示用户信息的简单jsp文件。

welcome.jsp

<%@ taglib uri="/struts-tags" prefix="s" %>

Welcome, <s:property value="name"/>


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Struts/struts-2-ajax-validation.html