Struts 2 Ajax验证-jsonValidation拦截器

  1. Struts 2 AJAX验证
  2. jsonValidation拦截器
  3. Struts 2 Ajax验证示例
【Struts 2 Ajax验证-jsonValidation拦截器】Struts 2为ajax验证提供支持。在这种情况下, 页面将不会刷新或重新加载, 因此可以提高性能。使用javascript隐式完成, 即用于客户端验证。
要使用AJAX验证, 你需要在项目中添加dojo插件。jsonValidation拦截器
AJAX验证由jsonValidation拦截器执行。在默认堆栈中找不到它, 因此我们需要显式定义它。它本身不执行任何验证, 这就是为什么必须将其与验证拦截器一起使用的原因。它可以在jsonValidationWorkflowStack中找到, 其中包括jsonValidation, 验证和工作流拦截器以及basicstack。
执行AJAX验证的步骤
执行AJAX验证的简单步骤如下:
  1. 创建表单以获取用户输入
  2. 在操作中继承ActionSupport类
  3. 在validation.xml文件中定义验证
  4. 定义错误消息的结果名称输入, 并在struts.xml文件中注册jsonValidationWorkflowStack
执行ajax验证的示例
在此示例中, 我们将创建4个页面:
  1. index.jsp以供用户输入。
  2. Register.java用于业务逻辑。
  3. Register-validation.xml, 用于使用捆绑的验证器。
  4. struts.xml, 用于定义操作的拦截器和结果。
  5. view组件的welcome.jsp。
1)创建index.jsp作为输入
该jsp页面使用struts UI标记创建表单。它从用户那里接收名称, 密码和电子邮件ID。
index.jsp
< %@ tagliburi="/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="http://www.srcmini.com/register-now.jpg"> < /d:submit> < /s:form> < /body> < /html>

2)创建动作类
该操作类继承了ActionSupport类, 并覆盖了execute方法。
RegisterAction.java
package mypack; import com.opensymphony.xwork2.ActionSupport; public class Register extends ActionSupport{ private String name, password, email; //setters and getterspublic 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定义了一个额外的结果。
struts.xml
< ?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="http://www.srcmini.com/name"/>

下载此示例

    推荐阅读