`

声明式验证

阅读更多
如果action的名字是UserController,在UserController所在包目录下添加
UserController-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="loginName">
  <field-validator type="requiredstring">
   <message>请输入邮箱地址</message>
  </field-validator>
  <field-validator type="email">
   <message>邮箱格式不正确</message>
  </field-validator>
 </field>

 <field name="name">
  <field-validator type="requiredstring">
   <message>请输入姓名</message>
  </field-validator>
  <field-validator type="stringlength">
   <param name="minLength">6</param>
   <param name="maxLength">20</param>
   <message>姓名长度只能在 ${minLength} 和 ${maxLength} 之间.</message>
  </field-validator>
 </field>

 <field name="password">
  <field-validator type="requiredstring">
   <message>请输入密码</message>
  </field-validator>
  <field-validator type="stringlength">
   <param name="minLength">6</param>
   <param name="maxLength">12</param>
   <message>密码长度只能在 ${minLength} 和 ${maxLength} 之间.</message>
  </field-validator>
 </field>
</validators>


ACTION中不需要验证的方法前加上
@SkipValidation

在页面中使用<s:fielderror/>显示错误信息
验证用户输入有误的话 默认转向input视图

JSP中不用标签可以用如下方式取到fielderror的值
<%@ page import="com.opensymphony.xwork2.*"%>
<%@ page import="com.opensymphony.xwork2.util.*"%>
<%@ page import="java.util.*"%>
<%
       ActionContext cxt = ActionContext.getContext();
       out.println("<h2>ValueStack</h2>");
       ValueStack stack = cxt.getValueStack();
       Object uc = stack.findValue("[1].fieldErrors.loginName");
       out.print(uc);
       List list = (List) stack.getRoot();
       for (int i = 0; i < list.size(); i++) {
        out.print("<FONT Color='Red'>" + list.get(i) + "</FONT>");
        out.println("<BR/>");
       }
%>


stack.findValue("[1].fieldErrors.loginName");
ValueStack stack是个LIST 取得第一个元素的fieldErrors属性的,
fieldErrors是个MAP 的KEY为loginName的值
分享到:
评论

相关推荐

    ngxErrors一个用于响应式表单的声明式验证错误模块

    1. 声明式验证错误处理: ngxErrors 提供了一种声明式的方式来绑定表单控件的验证错误,这允许开发者在模板中直接定义如何展示错误,而无需编写额外的控制器逻辑。通过在表单控件上使用 ngxErrors 指令,你可以轻松...

    背心:背心:white_heavy_check_mark:声明式验证框架

    背心 :safety_vest: 声明式验证测试 尝试背心直播 ReactJS示例: 讲解 :safety_vest: 什么是背心? Vest是用于JS应用程序的验证库,该库从现代JS单元测试框架(例如Mocha或Jest)派生其语法。 由于它已经使用了...

    一个基于ASP.NET 实现的Multiple Fields多字段输入验证控件源码及例子

    在ASP.NET开发中,输入验证是一项至关重要的任务,它确保用户提交的数据符合应用程序的要求和预期。这个"Multiple Fields Validator"控件就是一个专为实现多字段输入验证而设计的工具,适用于那些需要对多个表单字段...

    jQuery验证表单插件

    这样的声明式验证方式使得代码更易读,也降低了维护成本。 jQuery验证插件提供了丰富的验证规则,如: 1. `required`: 检查字段是否为空。 2. `email`: 验证输入是否符合电子邮件格式。 3. `url`: 验证输入是否为...

    PlayFramework框架验证.pdf

    PlayFramework是一个高性能的Java和Scala框架,它支持Web应用的快速开发,并且主要...通过结合声明式验证规则和自定义验证器,以及支持国际化的错误消息,PlayFramework的验证框架成为了构建可信赖Web应用的重要工具。

    struts_valXml 验证标签用例

    - 提供了一种声明式验证方式,减少了手动编写验证代码的工作量。 7. **局限性**: - Struts1的`struts_valXml`标签在Struts2中已被弃用,取而代之的是基于注解的更强大、更灵活的验证框架。 - 验证规则局限于JSP...

    【ASP.NET编程知识】.NET验证组件Fluent Validation使用指南.docx

    不同于传统的基于Attribute的声明式验证,Fluent Validation提供了一种更加灵活和可扩展的方式来处理验证逻辑。 ### 认识Fluent Validation Fluent Validation 的主要优点在于将验证规则与业务实体类分离,这使得...

    .NET模型验证组件FluentValidation1

    这个组件特别适用于ASP.NET MVC框架,可以替代基于Attribute的声明式验证方式。 在使用FluentValidation之前,首先需要通过NuGet包管理器安装FluentValidation和FluentValidation.MVC3(如果你正在使用MVC3)。在...

    AngularJS中实现用户访问的身份认证和表单验证功能

    AngularJS提供了一种声明式验证机制,允许开发者通过在表单字段上添加特定的指令(如`ng-required`、`ng-minlength`等)来定义验证规则。此外,`$scope.form.$valid`属性可用于检查整个表单的状态,而`$scope.form....

    Struts2用validate方法进行表单验证

    总的来说,Struts2的表单验证机制提供了丰富的功能,既可以通过编程方式在Action类中实现,也可以借助XML配置或注解进行声明式验证。同时,它还支持错误信息的集中管理与展示,以及按需分组的验证策略,大大提高了...

    validate.js:用JavaScript编写的声明式验证库

    Validate.js提供了一种验证JavaScript对象的声明方式。 有关文档,请参见 。 对于问题和功能请求,请访问。 构建validate.js 要求 可能适用于大多数版本 建立步骤 git clone git@github....

    hibernate-validator

    你可以选择编程式验证(直接调用验证API)或者声明式验证(在控制器或服务方法上使用 `@Validated` 注解),两者各有优势,可以根据项目需求选择合适的方式。 9. **元数据API** 通过元数据API,开发者可以获取到...

    struts2校验器

    声明式验证通常通过XML配置文件进行,而编程式验证则允许开发者在Action类中直接编写代码进行验证。这两种方式都可以实现复杂的业务逻辑验证。 首先,我们来讨论声明式验证。在Struts2中,你可以创建一个名为`...

    struts2学习笔记九(第9讲.Struts2的校验框架 续)

    1. **声明式验证**:在Action类中,我们可以使用注解来定义字段的验证规则。例如,`@RequiredFieldValidator`用于检查字段是否为空,`@SizeFieldValidator`用于限制字段长度等。这些注解可以直接应用到Action类的...

    开源项目-mwitkow-go-proto-validators.zip

    1. **声明式验证**:用户可以通过在protobuf消息定义中添加特定的注解,来声明字段的验证规则。例如,可以设置某个字符串字段必须非空,或者某个整数字段必须在某个范围内。 2. **代码生成**:项目会自动生成Go代码...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本主题将深入探讨Hibernate的编程式事务管理和Spring AOP的声明式事务管理,以及两者如何在实际项目中集成使用。 **Hibernate编程式事务管理** Hibernate作为流行的ORM(对象关系映射)框架,提供了对JDBC事务的...

    struts1 Validater 分页注册例子

    声明式验证通过XML配置文件进行,而编程式验证则通过编写Java代码实现。 **分页注册** 在Web应用中,当需要处理大量数据时,分页是一个常见的解决方案。分页注册指的是将注册过程分成多个步骤,每个步骤显示并处理...

    struts 2.0源码2

    1. **声明式验证**:在Struts 2中,验证可以通过编写XML配置文件或使用注解实现,这种方式称为声明式验证。视频15和14详细讲解了如何设置验证规则并执行验证流程,确保用户输入的数据符合业务逻辑要求。 2. **文件...

    bean-validator

    它主要基于JSR-303(Java Bean Validation)标准,为JavaBeans提供了一种声明式验证的方法,极大地简化了应用程序中的验证逻辑。在SpringMVC中,bean-validator扮演着核心验证组件的角色,允许开发者定义验证规则并...

    oak-mk-0.19.zip

    1. **声明式验证**:Accord库允许开发者用一种声明式的风格来编写验证规则,这些规则可以很容易地嵌入到业务逻辑中。 2. **类型安全**:由于Accord是基于Scala编写的,它利用了Scala的静态类型系统,确保验证规则在...

Global site tag (gtag.js) - Google Analytics