- Struts 2 AJAX验证
- jsonValidation拦截器
- Struts 2 Ajax验证示例
Struts 2为ajax验证提供支持。在这种情况下, 页面将不会刷新或重新加载, 因此可以提高性能。使用javascript隐式完成, 即用于客户端验证。
要使用AJAX验证, 你需要在项目中添加dojo插件。
jsonValidation拦截器
AJAX验证由jsonValidation拦截器执行。在默认堆栈中找不到它, 因此我们需要显式定义它。它本身不执行任何验证, 这就是为什么必须将其与验证拦截器一起使用的原因。它可以在jsonValidationWorkflowStack中找到, 其中包括jsonValidation, 验证和工作流拦截器以及basicstack。
执行AJAX验证的步骤
执行AJAX验证的简单步骤如下:
- 创建表单以获取用户输入
- 在操作中继承ActionSupport类
- 在validation.xml文件中定义验证
- 定义错误消息的结果名称输入, 并在struts.xml文件中注册jsonValidationWorkflowStack
执行ajax验证的示例
在此示例中, 我们将创建4个页面:
- index.jsp以供用户输入。
- Register.java用于业务逻辑。
- Register-validation.xml, 用于使用捆绑的验证器。
- struts.xml, 用于定义操作的拦截器和结果。
- view组件的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)创建动作类
该操作类继承了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定义了一个额外的结果。
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="name"/>
下载此示例
评论前必须登录!
注册