Struts 2 Ajax 验证 - jsonValidation 拦截器

17 Mar 2025 | 阅读 2 分钟

Struts 2 提供了对 ajax 验证的支持。在这种情况下,页面不会刷新或重新加载,因此可以提高性能。它隐式地使用 javascript 完成,即用于客户端验证。

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

jsonValidation 拦截器

AJAX 验证由 jsonValidation 拦截器执行。它在默认堆栈中找不到,因此我们需要显式地定义它。 它本身不执行任何验证,因此必须与验证拦截器一起使用。它位于 jsonValidationWorkflowStack 中,其中包括 jsonValidation、validation 和 workflow 拦截器以及 basicstack。


执行 AJAX 验证的步骤

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

  1. 创建表单以从用户获取输入
  2. 在您的 action 中继承 ActionSupport 类
  3. 在 validation.xml 文件中定义验证
  4. 为错误消息定义结果名称 input,并在 struts.xml 文件中注册 jsonValidationWorkflowStack

执行 ajax 验证的示例

在此示例中,我们创建 4 个页面

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

1) 创建 index.jsp 用于输入

此 jsp 页面使用 struts UI 标签创建一个表单。它接收用户的姓名、密码和电子邮件 ID。

index.jsp

2) 创建 action 类

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

RegisterAction.java

3) 创建验证文件

在这里,我们使用捆绑的验证器来执行验证。

Register-validation.xml

4) 创建 struts.xml

此 xml 文件通过名称 input 定义了一个额外的结果,并定义了一个拦截器 jsonValidatorWorkflowStack。

struts.xml

5) 创建视图组件

这是一个简单的 jsp 文件,显示用户的信息。

welcome.jsp